导出数据库的架构与数据

要从sqlserver2012降级到sqlserver2008,不能直接降级,可以导出数据再重建。
对于数据量大的情况,先生成脚本再dts即可
对于数据量小的情况,在数据库右键生成脚本,两个下一步后,在高级选项中将要编写脚本的数据的类型设置为架构与数据即可

导出json与xml

宋大师的文章:在SQL Server中将数据导出为XML和Json http://www.cnblogs.com/CareySon/p/4276828.html
导出json是这个sp:http://jaminquimby.com/servers/95-sql/sql-2008/145-code-tsql-convert-query-to-json

profile抓取从本机发出的数据库请求

用profile抓取本地请求,之前是用spid,用sqlserver客户端可直接看到,但spid每次连接上会改变,找到了hostname,指定为本机名,就可抓到从本机发出的数据库请求。现在保存为模板,双击即可导入到sqlserver2012的profile,记得修改模板中的hostname.

下载:http://enjoyasp.net/enjoytools/callFromMyPC.rar

NW-制作桌面应用新方式

node-webkit开发桌面应用 :将html打包成exe运行,好处一客户不用单独再安装chrome,,浏览器设置可封装,比如刷新缓存这些
是用c++写成,可直接访问本地资源,界面可以加菜单。
WebKit负责HTML5 UI 相关的部分,而Node.js负责本地的API接口,比如文件系统,网络,设备等。

使用:编辑package.json 放在nw根目录下,用enigma virtual box打包使用
作者相关:http://www.csdn.net/article/2014-01-08/2818066-Node-Webkit

中文文档
用Enigma Virtual打包时,dll选择:
nw.pak:必需,是javascript库
icudtl.dat:必需,是网络库
ffmpegsumo.dll:媒体库,比如作用video这些需有此dll支持
libEGL.dll:webgl使用
libGLESv2.dll:gpu使用
d3dcompiler_47.dll:调试webgl使用
pdf.dll

Enigma Virtual Box:将多个文件如dll,exe打包成一个文件直接可以运行,可以写注册表

遇到的问题:
系统要使用flash,而显示的效果是有些电脑flash显示正常,有些却不能。
通过阅读wiki知,需要增加”plugin”: true,默认是不加载插件的,此解决一,但还是会有flash不显示的电脑,
在package.json所在目录增加plugins,里面放入flash插件NPSWF32_11_8_800_168.dll,所有电脑都可显示flash。
原因:是在”plugin”: true后,NW会去系统目录找flash插件,因电脑安装原因,可能flash插件不能固定的地方,然后它会去package.josn所在的plugins中查找,就是我们放plugins目录的的所在。
package.json:
{
“main”: “http://xxxxx.xx/login.aspx” ,
“name”: “LvShou”,
“version”: “0.1”,
“window”: {
“title”: “微商管理系统V3.0 Powered By asong”,
“toolbar”: false,
“frame”: true,
“width”: 1024,
“height”: 768,
“position”: “center”,
“resizable”: true,
“icon”: “key.png”,
“show”: true
},
“webkit”: {
“plugin”: true
}

}

https://github.com/nwjs/nw.js/wiki/Third-party-browser-plugins

导入IIS log入SQLSERVER

1. Download the Log Parser tool from Microsoft here. I know, it’s old but works great.

2. Dump your IIS log files somewhere (ie: c:\temp\logs).

3. Run this in cmd:

C:\Program Files (x86)\Log Parser 2.2>logparser “SELECT * INTO iisLogs FROM c:\temp\logs\*.log ” -i:iisw3c -o:SQL -server:localhost -database:webLogs -username:sa -password:yourpass -createTable: ON
if you’re on 32bit, run Log Parser will be in this folder:

C:\Program Files\Log Parser 2.2>logparser “SELECT * INTO iisLogs FROM c:\temp\logs\*.log ” -i:iisw3c -o:SQL -server:localhost -database:webLogs -username:sa -password:yourpass -createTable: ON

来自:
http://chrisbitting.com/2012/04/12/importing-iis-logs-into-a-sql-database-table/

下载:log parser:http://www.microsoft.com/en-us/download/confirmation.aspx?id=24659

Posted in: IIS

tfs提交保留.refresh文件,去掉.dll文件

在bin下,若对其添加到TFS,则项目成员在生成时回相互签出,操作不便,而若掩蔽Bin文件,则.refresh文件则也被掩蔽,若添加新的引用,就不能让项目组其他成员获取。
解决方法,有TFS提供的掩蔽文件,指定哪些不添加进tfs,若dll
方法:
自动生成.tfignore文件

在 *** 挂起的更改 *** 页上,在 *** 排除的更改 *** 部分中,选择 *** 检测更改 *** 链接。

*** 提升候选更改 *** 出现对话框。

选择文件,打开其快捷菜单,并选择 *** 忽略此本地项目 ***、*** 通过扩展忽略 ***或 *** 由文件名忽略 ***。

选择 *** 好 *** 或 *** 取消 *** 关闭 *** 提升候选更改 *** 对话框。

.tfignore文件显示在 *** 挂起的更改 *** 页的 *** 包含的更改 *** 部分。 可以打开此文件并修改它以满足您的需要。

.tfignore文件自动添加为包含挂起的更改,以便您创建的规则将应用于获取文件的每个团队成员。

参考:向服务器添加文件 http://msdn.microsoft.com/library/vstudio/ms245454(v=vs.110).aspx#tfignore

dll文件引用存储位置

1,通过浏览添加的DLL,会在bin下面生成一对应人.refresh文件,里面有存位置
2,通过添加整个项目方式,会在.sln文件中保存此配置
3,通过添加.net已有程序集的方式,会在web.config中有记录。

Visual Studio Website Reference Paths
http://stackoverflow.com/questions/279451/visual-studio-website-reference-paths

ssms表格展示大数据的限制

工具-选项-查询结果-SQL Server 以网络显示结果中可设置最大非XML数据为65535
但实际最大只能到43679 。
测试:
select replicate(convert(varchar(max),’-‘),65535)
解决方法:鉴于xml数据大小可以不限制,可以转成xml来展示
select replicate(convert(varchar(max),’-‘),65535)
FOR XML PATH(”)

对于表中nvarchar(max)数据,用select也会有上述问题,解决方法是打开表,copy数据

winrar制作升级包

@echo off

::set fdir=%WINDIR%\Microsoft.NET\Framework64

::if not exist %fdir% (
:: set fdir=%WINDIR%\Microsoft.NET\Framework
::)
::set msbuild=%fdir%\v4.0.30319\msbuild.exe
::%msbuild% website.publishproj /p:DeployOnBuild=true /p:PublishProfile=.\App_Data\PublishProfiles\发布.pubxml /p:VisualStudioVersion=11.0 /p:OutputPath=D:\deploy

::复制
ROBOCOPY M:\Luke\LengKu\Web N:\deploy\ccms\ccms /XO /MIR /XF web.config ConnMapping.xml release.bat website.publishproj JavaField.xml /XD Files ewebeditor extjs ExtLib icon images JScript Resources

::压缩并添加解压的文件路径,这样copy上去后直接点解压即可
del N:\deploy\ccms.exe
cd /d N:\deploy\ccms
“C:\Program Files\WinRAR\rar.exe” a -k -r -s -sfx -z”N:\deploy\DeployTools\winrarPath.ini” N:\deploy\ccms.exe ccms DB
::start N:\deploy
::打开teamview准备上
“C:\Program Files (x86)\TeamViewer\Version9\teamviewer.exe” -i aa –Password bbbb -m fileTransfer

winrarPath.ini文件:
Path=E:\IISROOT\
Overwrite=1

sqlserver部分包含数据库

SQL Server 2012引入了包含数据库,将登录账号,工作代理,环境打包到一个db里,这样在做迁移的时候就不会丢失。

限制是:
部分包含数据库不能使用复制、更改数据捕获或更改跟踪。
编号过程
绑定到架构的对象,且依赖于可更改排序规则的内置功能
绑定因排序规则更改而导致的变化,包括对对象、列、符号或类型的引用。
复制、变更数据捕获和更改跟踪。

配置方法见: SQL Server 2012中包含的数据库(Contained Database)探索
http://blog.csdn.net/burgess_liu/article/details/7477470

cmd下用curl 向 https post json数据

1,下载包含ssl的curl: 地址:http://www.confusedbycode.com/curl/
2,json数据注意两点:1)用3个引号替换1个引号(因为cmd为自动去掉引号) 2)项与数据之间不要有空格
格式:
curl -X POST https://enjoyasp.net -d {“””api_key”””:”””4c38d5a2d564d52a1390d2e9fce88ea1″””,”””data”””:{“””item”””:[{“””text”””:”””This is a new message”””,”””type”””:0}]}} -H “Content-Type:application/json” -k

3,curl使用方法:http://www.ruanyifeng.com/blog/2011/09/curl.html

wget使用

想用sqlserver发短信,做法是做一CLR打到sqlserver中,感觉有些硬,可以用xp_cmdshell+wget来实现。
wget下载:http://www.interlog.com/~tcharron/wgetwin.html

应用:
1,下载网站或文件,支持断点续
2,get url,比如上面的短信调用或者测试网站是否可以访问,或不能发送短信。
3,post数据。

数据仓库SSAS+SSIS+SSRS

—————————–SSAS————————————-
1,用ssas生成多维度,然后利用excel的data功能可以自组各种维度的报表
2,可设置是否可见,在维度结构 子项-属性-AttributeHierarchyVisible=false
在维度结构 -属性-AttributeMemberName=myname
3,先增加维度,再在此基础上增加多维数据集.多维数据集用来对多个维度指定聚合方式,求和或者计数或者其它.
多维数据集提前聚合生成一次聚合数据,与sqlserver db分开,不用每次再进行数据查询,而关系数据库是每次都要聚合,性能很低
并且建立维度后,大家可共用,防止自己写sql不同的结果
4,多维数据集启用excel,也查以使用excel连接多维数据表
5,加载数据是在sqlserver 维度右键处理进行数据的加载或studiio中点击处理,
或者在多维数据集中的分区页设置更新时间,或者用ssis建立一个analysis services处理任务,用job来定时刷新
BI笔记之—Cube增量处理的一个场景的处理方案
6,Tableau不错,不过服务端收费
7,在多维数据集中的透视中可对度量值进行分组,然后给不同的用户看
8,kimball university:the 10 essential rules of dimensional modeling
9,权限:关系型数据库用视图,分角色
cube:建立多个角色 SQL Server分析服务的权限配置 http://www.cnblogs.com/aspnetx/p/3703335.html

—————————–SSIS——————————-
分区.用switch可以转到其他服务器上,这不费时间,很快

复制-并行数据仓库系统-大数据 规模
并行数据仓库pDw,可让数据库分到多个服务器上 Teradata做的最好

1,lession2:循环文件,连接管理器中的连接属性expression的constring用变量
2,日志事件一般选择onerror on warning,onpostexcute,ontaskfailed
若使用sqlserver记录日志,日志表为sysssislog
3,包部署模型:配置,增加变量,转换为包部署模型,ssis-包配置
好处:统一的日志管理,集中处理,有缓存,速度快
4,资源管理器打开文件夹,bin下面有个ispac文件,可以用来做部署

大表做分区,放到不同的filegroup中,表建立时启用页yasuo,能压缩一半以上,读快,不过写慢一些,用在很少更新的大表上
,然后到一定量时做switchr
alter table sss switch to eee

自己做:动态生成job,动态生成包,完全.net写取数据
解决并行问题,写sql是硬编码,并且不能并发,动态生成job就能解决这个问题
sqlserver到来60t时单台db会到pingjing

—————————–SSRS————————————–
列存储,对表进行分区,更新时只要drop对应分区即可,不用drop掉整个表
PowerView制作动态图表,PowerView已经可以成为一个强大的BI工具,可以做出功能非常丰富的动态交互图表甚至DashBoard
BISM是一种更加轻量级的模型,它不像CUBE那样复杂,建立的周期和其相比也要短得多,也不需要使用复杂的MDX语句(但也支持MDX),BISM支持使用DAX进行查询,总而言之,BISM是一个更加简单的能够快速提供给业务人员使用
PowerPivot:大数据级的excel,解决大数据量的存储问题

数据量在1000万以内用ssis,以上ETL层自定义框架

前端利用第三方组件自行开发

优点,ETL和UI自己开发

SSDT:数据库部署方案

1,sqlserver解决方案 ssdt:sqlserver data tools
好处:每次发布的脚本是动态生成的,可以多次发布,即使中间出错,下次也会从新的开始

2,发布-高级可以设置选项
表-属性: 生成操作. 无指不参与生成,也不会部署

3,添加-脚本
后期部署脚本,指在生成脚本后执行
预先部署脚本,指在生成脚本前执行

4,已有数据库,生成源码操作
右键sqlserver项目,导入-数据库

5,真正发布时,会用脚本来执行,命令行执行sqlpackage
可以点生成,资源管理器打开,在bin下有一个dac文件,可用sqlpackage.exe来调用这个文件来部署
这种部署是最佳实践,因为可以部署到多台服务器上,并且可以版本控制,可对checkin的脚本进行发布
redgate是用事务的,会锁住对象,并且不能插入脚本
在项目中生成文件后,将dac文件copy出来,用sqlpackage.exe发布,在进行发布时会自动比较生成脚本
如:
@echo off
set sqlpackage=”C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe”
%sqlpackage% /Action:Publish /SourceFile:E:\mydb\bin\Debug\BRM.sqlproj.dacpac /Profile:E:\Db.publish.xml

6,调用脚本
:r .\Script.sql

script.sql是用添加-脚本-不在内部版本中类型的脚本

7,对于有复制分发的数据库,可以在发布-高级里面指定不更改复制对象
做法是:在其中一台db中指定更改复制对象,其他DB不更改

ASP:Image控件生成的代码自动增加border-width:0px的Bug处理

在用ImageButton时,前台生成的控件会自动带上element.style{border-width:0px} 影响其他样式。
这个是ASP.NET的一个Bug,需要实现自己的类解决
using System;
using System.Web.UI.WebControls;

public class BorderlessImageButton : ImageButton {
public override Unit BorderWidth {
get {
if (base.BorderWidth.IsEmpty) return Unit.Pixel(0);
else return base.BorderWidth;
}
set {
base.BorderWidth = value;
}
}
}

然后不使用ImageButton,而是使用BorderlessImageButton
或者直接在web.config增加映射关系。



tagMapping>
pages>
system.web>

参考:Remove border-width:0px from asp:Image or asp:ImageButton
http://weblogs.asp.net/reganschroder/remove-border-width-0px-from-asp-image-or-asp-imagebutton

链接服务器的使用

链接服务器配置简答,操作方便,是进行数据处理很有用的工具。
但若在存储过程中使用了链接服务器,就要注意:
若链接服务器挂了,则对应的存储过程在执行时都会阻塞,阻塞时间就是链接服务器的超时时间,会影响系统的使用。
所以使用链接服务器的场合是:
1,涉及到链接服务器的存储过程独立,不与其他逻辑混在一起,sp短小精悍
2,设置链接服务器的超时时间,若在局域网内,设置成6s超时就够用。

RESTORE参数查看备份文件信息

RESTORE除了还原数据库外 ,还能带如下参数查看备份文件的信息
--备份集中包含的一组数据库和日志文件,mdf,ldf文件大小
RESTORE FILELISTONLY FROM DISK='E:\DB\DBBACK\mydb.bak'

--特定备份设备上所有备份集的所有备份标头信息,如备份开始时间与结束时间
RESTORE HEADERONLY FROM DISK='E:\DB\DBBACK\mydb.bak'

--备份设备标识的备份介质的信息
RESTORE LABELONLY FROM DISK='E:\DB\DBBACK\mydb.bak'

--验证备份是否有效
RESTORVERIFYONLYLY FROM DISK='E:\DB\DBBACK\mydb.bak'

参考 :RESTORE 参数
http://msdn .microsoft. com/zh -cn/ library/ms178615 .aspx