代码改变世界

随笔分类 -  数据库

看懂SQL Server的查询计划(绝对好文!)

2011-06-07 11:14 by 假面Wilson, 761 阅读, 收藏, 编辑
摘要: 在园子看到一篇SQLServer关于查询计划的好文,激动啊,特转载。原文出自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html看懂SqlServer查询计划对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题, 本文只谈优化查询时如何看懂SqlServer查询计划。由于本人对SqlServer的认识有限,如有错误,也恳请您在发现后及时批评指正。首先,打开【SQL Server Management Studio】,输入一个查询语句看看SqlServer是如何显 阅读全文

SQL STUFF用法很有趣的语法

2011-06-01 15:27 by 假面Wilson, 285 阅读, 收藏, 编辑
摘要: 1、作用删除指定长度的字符,并在指定的起点处插入另一组字符。2、语法STUFF ( character_expression , start , length ,character_expression )3、示例以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串SELECT STUFF('abcdef', 2, 3, 'ijklmn')GO下面是结果集aijklmnef4、参数character_expression一个字符数据表达式。character_exp 阅读全文

SQL Server 表分区注意事项(转载)

2011-06-01 12:40 by 假面Wilson, 287 阅读, 收藏, 编辑
摘要: 在园子里看到听风吹雨关于SQL Server 表分区注意事项 ,总结的太好了。备忘,方便以后查询!http://www.cnblogs.com/gaizai/archive/2011/05/31/2064931.html 阅读全文

Sql2005 全文索引详解

2011-05-30 11:22 by 假面Wilson, 308 阅读, 收藏, 编辑
摘要: 今天在园子看到一篇SQL2005全文索引的教程,非常的详细!为了以后查询方便,写此blog备忘!http://www.cnblogs.com/jhxk/articles/1947054.html 阅读全文

SQLServer 全文索引第一次超时的解决方案

2011-05-30 11:18 by 假面Wilson, 1053 阅读, 收藏, 编辑
摘要: 建立全文索引后,使用Contains查询很快。搁置约几分钟;再次使用contains查询很慢,会超时,第2次则又快起来了。不久又如此。 sqlserver2005全文索引的缓存会被释放,如果才能保持?初步解决方法是调整了全文索引服务的一个verify_signature属性,禁用。SELECT fulltextserviceproperty('VerifySignature')exec sp_fulltext_service verify_signature,0----------------------------------------------------在全文索引中排 阅读全文

SQL Server的 排序规则(collation)冲突和解决方案

2011-05-27 17:31 by 假面Wilson, 717 阅读, 收藏, 编辑
摘要: 最近在研究SQL Server的排序规则,觉得此文很棒。故转载!转载自:http://www.cnblogs.com/blodfox777/archive/2010/01/21/sqlserver-collation-conflict-and-solutions.html什么是排序规则(collation)关于SQL Server的排序规则,估计大家都不陌生,在创建数据库时我们经常要选择一种排序规则(conllation),一般我们会留意到每一种语言的排序规则都有许多种,比如标准大陆简体中文Chinese_PRC的排序规则就有数十种之多这些排序规则有什么作用呢?让我们先来看看MS官方的解释:排 阅读全文

动态管理视图和函数的使用

2011-05-22 23:54 by 假面Wilson, 279 阅读, 收藏, 编辑
摘要: 动态管理视图和函数返回可用于监视服务器实例的运行状况、诊断故障以及优化性能的服务器状态信息。1、与执行有关的动态管理视图和函数:(*)sys.dm_exec_sessions:是服务器范围的视图,显示了有关所有活动用户连接和内部任务的信息。此信息包含客户端版本、客户端程序名称、客户端登录时间、登录用户、当前会话设置等。(*)sys.dm_exec_requests :返回有关在 SQL Server 中执行的每个请求的信息。(*)sys.dm_exec_connections:返回与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息。(*)sys.dm_exec_curso 阅读全文

Sql Server Split函数

2011-05-19 15:35 by 假面Wilson, 524 阅读, 收藏, 编辑
摘要: 创建表值函数SplitCreate FUNCTION [dbo].[split] ( @Long_str VARCHAR(8000) , @split_str VARCHAR(100) )RETURNS @tmp TABLE ( ID INT IDENTITY PRIMARY KEY , short_str VARCHAR(8000) )AS BEGIN DECLARE @long_str_Tmp VARCHAR(8000) , @short_str VARCHAR(8000) , @split_str_length INT SET @split_str_length = LEN(@split 阅读全文

SQL语句压缩数据库和Log

2011-05-16 12:56 by 假面Wilson, 414 阅读, 收藏, 编辑
摘要: --压缩数据库文件 DUMP transaction Database with no_log --压缩数据库,参数0代表当前数据库 DBCC SHRINKDATABASE (0); 阅读全文

SQL Server 2008数据库复制实现数据库同步备份(转载)

2011-04-22 18:07 by 假面Wilson, 587 阅读, 收藏, 编辑
摘要: 通过SQL Server 2008数据库复制实现数据库同步备份SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制。数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像服务器。但缺点是配置复杂,镜像数据库中的 阅读全文

NoSQL数据库探讨

2011-04-15 15:41 by 假面Wilson, 235 阅读, 收藏, 编辑
摘要: 转载自:http://robbin.iteye.com/blog/524977随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:1、High performance - 对数据库高并发读写的需求web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询 阅读全文

Sql2005高效分页语句

2011-03-29 14:45 by 假面Wilson, 320 阅读, 收藏, 编辑
摘要: 1、select top 10 * from ( select top (@Page * 10) ROW_NUMBER() OVER (order by id)as RowNum, id, username from Guestwhere username = 'user' ) as Twhere RowNum > ((@Page - 1) * 10)2、select * from( select ROW_NUMBER() OVER(order by id)as RowNum,id,username from Guestwhere username = 'user 阅读全文

SQL 的Over 子句

2011-03-29 10:31 by 假面Wilson, 2483 阅读, 收藏, 编辑
摘要: 参数:PARTITION BY将查询结果集分为多个分区。 开窗函数分别应用于每个分区,并为每个分区重新启动计算。定义结果集的每个分区中行的逻辑顺序。 也就是说,它指定按其执行开窗函数计算的逻辑顺序。数据值:rank () over , row_number() over ,rank_dense ()总结如下:我创建了一个表,数据如下,SQL> select * from test; A1 A2---------- ---------- 1 3 2 4 3 2 3 5 4 2然后用rank () over,SQL> select a1,a2,rank () o... 阅读全文

聚集索引和非聚集索引(sql server索引结构及其使用)

2011-03-23 15:13 by 假面Wilson, 650 阅读, 收藏, 编辑
摘要: 转载自:http://www.cnblogs.com/acafaxy/archive/2011/03/17/1987431.html 一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查安字,就会很自然地翻开字典的前几页,因为安的拼音是an,而按照拼音排序汉字的字典是以英文字母 阅读全文

重建索引提高SQL Server性能

2011-02-22 14:27 by 假面Wilson, 613 阅读, 收藏, 编辑
摘要: 大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要全表进行扫描读取表中的每一个记录才能找到所要的数据。索引可以分为簇索引和非簇索引:簇索引通过重排表中的数据来提高数据的访问速度;而非簇索引则通过维护表中的数据指针来提高数据的访问速度。 1. 索引的体系结构 SQL Server 2005在硬盘中用8KB页面在数据库文件内存放数据。缺省情况下这些页面及其包含的数据是无组织的。为了使混乱变为有序,就要生成索引。生成索引后,就有了索引页和数据页之分:数据页用来保存用户写入的数据信息;索引页存放用于检索列的数据值清单(关键字)和索引表中该值所在纪录的地址指 阅读全文

在SQL Server 2005中实现表的行列转换()

2011-01-26 16:08 by 假面Wilson, 286 阅读, 收藏, 编辑
摘要: PIVOT和UNPIVOT关系运算符是SQL Server 2005提供的新增功能,因此,对升级到SQL Server 2005的数据库使用PIVOT和UNPIVOT时,数据库的兼容级别必须设置为90(可以使用sp_dbcmptlevel存储过程设置兼容级别)。  在查询的FROM子句中使用PIVOT和UNPIVOT,可以对一个输入表值表达式执行某种操作,以获得另一种形式的表。PIVOT运算符将输入表的行旋转为列,并能同时对行执行聚合运算。而UNPIVOT运算符则执行与PIVOT运算符相反的操作,它将输入表的列旋转为行。  在FROM子句中使用PIVOT和UNPIVOT关系运算符时的语法格式如 阅读全文

sql2005中的execute与sp_executesql

2011-01-20 15:50 by 假面Wilson, 622 阅读, 收藏, 编辑
摘要: execute相信大家都用的用熟了,简写为exec,除了用来执行存储过程,一般都用来执行动态Sql sp_executesql,sql2005中引入的新的系统存储过程,也是用来处理动态sql的,如: exec sp_executesql @sql, N'@count int out,@id varchar(20)', @cou out ,@id @sql为拼成的动态sql N'@count int out,@id varchar(20)'为拼成的动态sql内的参数列表 @cou out,@id为为动态sql内参数列表提供值的外部参数列表 那么它们之间有什么区别呢? 1,它们之间最大的区别是嵌入 阅读全文

sql 整数相除 怎么取得小数

2011-01-17 11:00 by 假面Wilson, 2568 阅读, 收藏, 编辑
摘要: 两个数中任意一个转换为浮点数后,整型的就会转换为浮点数再进行运算select cast ( 165*100 as float )/343select str((4*100.0)/(20*1.0),5,2) select str((165*100.0)/(343*1.0),5,2) 如果要保留固定小数位,使用 cast(xxxxxx as numeric(10,2)) 的形式整理结果。 阅读全文

SQL中CONVERT转化函数的用法

2011-01-12 11:16 by 假面Wilson, 305 阅读, 收藏, 编辑
摘要: 格式:CONVERT(data_type,expression[,style])说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.例子:SELECTCONVERT(varchar(30... 阅读全文

sql server数据分页 比较

2011-01-07 11:10 by 假面Wilson, 204 阅读, 收藏, 编辑
摘要: 今天看到一篇关于多种分页方式的性能对比文章,觉得很好。http://www.codeproject.com/KB/aspnet/PagingLarge.aspx 阅读全文