SQL Server
xiaoxu0123
这个作者很懒,什么都没留下…
展开
-
SQL Server 技巧收集
select * from sys.databasesselect [name] from sys.database_files where type_desc = LOGselect * from sys.master_filesselect * from sys.backup_devicesselect * from sys.assemblies--FileName is DataFil1原创 2009-08-15 17:20:00 · 595 阅读 · 0 评论 -
[SQLServer2005] 哈希索引
假设需要对某个表的字符串类型的列进行索引,并且字符串的长度较长。生成的索引体积就会比较大,同时影响插入及搜索的性能。这种情况下可以考虑使用对字符串进行hash计算,然后对hash值进行索引。 本示例显示使用sqlserver 2005中, 通过CHECKSUM生成哈希索引。通过将计算校验和列添加到索引的表中,然后对校验和列生成索引来生成哈希索引。原创 2010-01-03 15:29:00 · 1261 阅读 · 0 评论 -
[SQLServer2005]交叉表格: cube, rollup
CUBE 和ROLLUP 运算符生成的结果集是多维数据集。结果集包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有组合的聚合。 ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。原创 2010-01-03 14:47:00 · 980 阅读 · 0 评论 -
[SQLServer2005] 分析函数 (又称窗口函数)
1.简介: SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。窗口函数功能非常强大,使用起来也十分容易。可以使用这个技巧立即得到大量统计值。窗口是用户指定的一组行。 开窗函数计算从窗口派生的结果集中各行的值。2.适用范围:排名开窗函数和聚合开窗函数.也就是说窗口函数是结合排名开窗函数或者聚合开窗函数一起使用OVE原创 2010-01-03 13:57:00 · 7528 阅读 · 0 评论 -
[SQL Server 2005] hash联接算法
SQL Server 2005 hash联接算法 如果两个联接输入都很大,而且这两个输入的大小差不多,则预先排序的合并联接提供的性能与哈希联接相近。但是,如果这两个输入的大小相差很大,则哈希联接操作通常快得多。 哈希联接可以有效处理未排序的大型非索引输入。它们对复杂查询的中间结果很有用,因为: · 中间结果未经索引(除非已经显式保存到磁盘上然后创建索引),转载 2010-01-03 16:39:00 · 719 阅读 · 0 评论 -
[SQLServer] 临时表、表变量、 CTE
本文原本是为了说明游标在某些特定环境下的用途,突然发现用来说明临时表、表变量和 CTE 的关系更为合理一些。 本文的例子给了一串数字,是为了求得同组中所有数字的乘积,包括累计叠加等等,这样的案例通过一般的分组方式很难办到,而通过游标更容易实现。 创建一个<a onclick="function onclick(){tagshow(event, %B2%E2%CA%D4);}转载 2010-03-19 23:59:00 · 811 阅读 · 0 评论 -
[SQLServer2005] 异常捕获
以下例子针对动态语句的执行进行异常捕获(即begin try中的语句), 出错后直接会进入到 begin catch的语句块当中。 -- 将数据从临时表t_test,导换到结果表 set @str_sql =insert into + @str_tablename + select * from t_test begin try exe原创 2010-03-19 16:19:00 · 443 阅读 · 0 评论 -
[SQLServer2005] 让作业自已报错,然后再重新启用.
我们可以设定一个sqlserver的job执行失败后,隔多长时间再重复执行。 以下是一个job调用的存储过程中的一段代码, 当遇到第一种情况"1.未找到web文件",假定这个错误可以自动修复。我们可以通知其它作业去执行相关任务(如重新下载web网页), 然后让job报错,根据你上面的设置, job隔一定的时间会再次运行(比如web下载完成之后),达到了自动修复错误的目的。 (当原创 2010-03-19 16:31:00 · 916 阅读 · 0 评论 -
[SQL Server] 多触发器执行问题
问题描述: 在某环境中数据表存在多个触发器,数据的增删改是标准的每个表都有的触发器,此外还存在关于校验的触发器;起因是写完触发器后,有一次同事询问说触发器不起作用了,没有提示错误,但是数据无法保存;我也有点莫名其妙,在查询分析器中执行直接就提示错误了,可在应用程序中无法提示错误。 同事提醒说需要执行一段设置触发器触发先后顺序的代码,查了一下为 sp_settriggerorder ;转载 2010-03-20 00:13:00 · 2332 阅读 · 0 评论 -
[SQLServer2005] 动态语句申明游标
在sql存储过程时, 有时可能需要处理动态语句返回的游标值。例子如下: set @str_sql = declare cur1 cursor for select distinct startdate from + @str_tablename;execute (@str_sql);open cur1;fetch next from cur原创 2010-03-19 16:10:00 · 891 阅读 · 0 评论 -
[SQL Server 2005]统计学自动分组问题
统计学自动分组问题 学过统计学或者做过 BI 的应该知道,很多报表 需要以区间统计的方式来实现,怎么分组比较合理,什么的组距比较合适,会困扰很多人;本文给出一个自动分组的方法,稍微修改一下,便可以做成通用区间分组程序。 关于统计学组距分组参考以下链接: http://wiki.mbalib.com/wiki/%E7%BB%84%E8%B7%9D%E5%88%86%E7%BB%84转载 2010-03-19 21:06:00 · 818 阅读 · 0 评论 -
[SQLServer]如何删除表中的重复行
如果表中有多组完全不同的重复的 PK 值,则逐个删除它们会很费时间。在这种情况下,可使用下面的方法: 1.首先,运行上面的 GROUP BY 查询来确定有多少组重复的 PK 值及每组的重复数。 2.选择重复的键值放入临时表中。例如: SELECT col1, col2, col3=count(*) INTO holdkey FROM t1 GROUP BY col1, col2 HA转载 2010-03-28 21:34:00 · 1026 阅读 · 0 评论 -
[SQL Server] 约束(验证固定电话号码)
[SQL Server] 针对固定电话号码的约束 ALTER TABLE Customers ADD CONSTRAINT CN_CustomerPhoneNo CHECK (Phone LIKE [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9] or Phone LIKE [0-9原创 2010-04-04 18:11:00 · 9338 阅读 · 0 评论 -
[SQL Server]使用正则表达式来查找字符串
使用正则表达式来查找字符串 由于SQL中的like运算符提供的功能非常有限,仅支持%,_,[],[^]这几个通配符,对于一些复杂的自符串搜索要求,它是无法满足的。以下转帖一个使用正则表达式搜索字符串的方法。 创建一个用户自定义函数,用户可以调用这个函数判断指定的字符串是否符合正则表达式的规则.CREATE FUNCTION dbo.find_regular_ex转载 2010-04-04 18:46:00 · 5795 阅读 · 0 评论 -
SQLSERVER备份和还原
SQLSERVER备份和还原转载 2010-07-01 11:08:00 · 1841 阅读 · 0 评论 -
[SQL Server]查询某个SPID,session_id对应的执行sql.
查询某个SPID,session_id对应的执行sql.原创 2010-06-29 14:49:00 · 25388 阅读 · 1 评论 -
SQL Server跟踪日志
SQL Server跟踪日志原创 2010-06-30 10:33:00 · 2404 阅读 · 0 评论 -
SQL Server 2005/2008数据库邮件
启动数据库邮件功能 sp_configure show advanced, 1; GORECONFIGURE;GOsp_configure Database Mail XPs, 1; GORECONFIGURE;GO -- 配置数据库邮件 -- 添加邮件账户execute msdb.dbo.sysmail_add_ac原创 2010-05-14 13:55:00 · 867 阅读 · 0 评论 -
SQL Server 2005/2008 性能监控(待续)
-- 查看性能记数器 SELECT * FROM sys.dm_os_performance_counters -- 执行过的线程所遇到的所有等待(不是当前正在运行的线程, 为自上次重置统计信息或启动服务器以来累积的数据),可分析靠前的几个等待较高的事件。select * from sys.dm_os_wait_stats order by wait_time_m原创 2010-05-18 20:05:00 · 1546 阅读 · 0 评论 -
[SQL Server] 日志管理(待续)
--备份事务日志 (自上一次备份以来,至当前的已完成的事务的日志)backup log MyDBName to disk=F:/dbbak/GamePoint/MyDBName_log_2010052709.bak; --截断日志(截断掉当前的已完成的事务的日志), SQL Server 2005, 2008没有这个选项.backup log MyDBName with no原创 2010-05-27 11:04:00 · 791 阅读 · 0 评论 -
[SQL Server] 导出表结构(数据字典)
-- 数据字典SELECT (case when a.colorder=1 then d.name else end)表名, a.colorder 字段序号, a.name 字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)=1 then √else转载 2010-05-25 13:05:00 · 8450 阅读 · 1 评论 -
[SQL Server] sp_who, sp_who2和sp_who3
[SQL Server] sp_who, sp_who2和sp_who3原创 2010-07-23 13:28:00 · 16318 阅读 · 2 评论 -
[SQL Server] CPU占用Top50
[SQL Server] CPU占用Top50原创 2010-07-26 10:32:00 · 1031 阅读 · 0 评论 -
[SQL Server 2005/2008]重用执行计划(存储过程性能优化)
语句或存储过程第1次执行时,会生成一个经时“查询优化器”优化后的执行计划,默认情况下,还将会缓存这次的执行计划; 下次执行时将直接使用缓存的执行计划,而且不检查这样做是否合适。原创 2010-06-06 16:14:00 · 2911 阅读 · 0 评论 -
[SQL Server 2005/2008]参数嗅探问题 (性能优化)
查询优化器“知道”输入参数的值,就能够生成适合该输入的执行计划;然而,当查询中引用局部变量时,查询优化器无法“嗅探”出变量的内容,当它在优化查询计划时,它必须猜测。这些局部变量是在批处理中还是在存储过程中都无关紧要。 很明显,如果你不了解这个问题而且没有采取纠正措施将导致性能低下的计划。原创 2010-06-06 16:34:00 · 1278 阅读 · 0 评论 -
SQL Server 2000的系统表映射到SQL Server 2005 中对应的一个或多个系统视图
SQL Server 2000 中 master 数据库内的系统表映射到它们在 SQL Server 2005 中对应的一个或多个系统视图。SQL Server 2000 中每个数据库内的系统表映射到它们在 SQL Server 2005 中对应的一个或多个系统视图。转载 2010-06-07 10:21:00 · 985 阅读 · 0 评论 -
[SQL Server 2005/2008] select语句中指定索引
一般情况下,SQL Server的查询优化器会对查询做优化,选择适合的索引。 当遇到一些宽表,索引和where 过滤条件多时, 查询优化器选择的可能并不是最佳的索引, 此时需要手动指定索引。具体效果可以在“执行计划中查看”。原创 2010-06-07 19:46:00 · 2565 阅读 · 0 评论 -
Windows性能计数器(用于监控系统和sql server)
Windows性能计数器(用于监控系统和sql server)原创 2010-08-12 10:51:00 · 3951 阅读 · 0 评论 -
[SQL Server] 动态sql给变量赋值(或返回值给变量)
[SQL Server] 动态sql给变量赋值(或返回值给变量)原创 2010-06-21 19:39:00 · 11478 阅读 · 1 评论 -
参考: SQL Server性能优化案例报告
http://blog.csdn.net/redbirdli/archive/2009/03/11/3980810.aspx转载 2010-08-18 09:42:00 · 912 阅读 · 0 评论 -
[SQL Server] 使用事务发布与订阅实现数据同步
[SQL Server] 使用事务发布与订阅实现数据同步, 最后部分还有“数据库迁移后,重新创建发布订阅”的步骤。转载 2010-08-19 17:10:00 · 1249 阅读 · 1 评论 -
[SQL Server] 在实例间传输用户名和密码信息
简单介绍sql server中的"登陆名", "用户名", 权限等内容。原创 2010-08-25 17:54:00 · 757 阅读 · 0 评论 -
SSRS 网格颜色
<br />以选择的颜色显示网格<br />在SSRS中,没有直接以选择的颜色来显示网格的方法(以可选择的颜色显示网格会提高报表的可读性。在Excel 2007中你可以很容易地做到,但是在SSRS中却不行)。<br /><br />通过将背景颜色中的一个表达式和RowNumber函数结合起来,你可以添加选择颜色到你的报表中。RowNumber(无)返回当前记录的记录编号。对于每个文本框的背景属性,你需要给出下面的表达式。 软件开发网<br /><br />=iif(RowNumber(Nothing)Mod原创 2010-09-11 23:36:00 · 1085 阅读 · 0 评论 -
数据库读写分离研究 --待续
数据库读写分离研究 --待续原创 2010-09-13 10:22:00 · 1035 阅读 · 0 评论 -
SQL Server备份读写揭秘
SQL Server备份读写揭秘转载 2010-09-26 14:18:00 · 608 阅读 · 0 评论 -
[SQL Server 2005/2008]删除重复行(使用CTE公用表达式)
[SQL Server 2005/2008]删除重复行(使用CTE公用表达式)转载 2010-10-14 14:04:00 · 1144 阅读 · 1 评论 -
[SQL Server]性能排错之系统等待:WRITELOG
[SQL Server]性能排错之系统等待:WRITELOG转载 2010-12-08 17:06:00 · 3463 阅读 · 0 评论 -
SQL Server - Performance Counter Guidance
SQL Server - Performance Counter Guidance转载 2010-10-18 20:37:00 · 1987 阅读 · 0 评论 -
[SQL Server]数据库大小,表大小及行数统计
-- 统计某个表的空间大小, 行数信息-- 统计多个数据库多个表的空间大小, 行数信息-- 用于查看对应数据库的大小、占用空间以及该数据库中各个系统表、用户表原创 2010-12-23 17:14:00 · 5429 阅读 · 0 评论 -
SQLSERVER使用CLR Stored Procedure导出数据到Excel
SQLSERVER使用CLR Stored Procedure导出数据到Excel转载 2010-12-31 17:27:00 · 866 阅读 · 0 评论