SQLServer全局变量
select APP_NAME ( ) as w --当前会话的应用程序 select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名 SELECT @@CONNECTIONS --返回自上次SQL启动以来连接或试图连接的次数。 SELECT GETDATE() --当前时间 SELECT @@CPU_BUSY/100 --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒 USE tempdb SELECT @@DBTS as w --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。 select @@IDENTITY as w --返回最后...
从SQL语句的角度提高数据库的访问性能
最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带来的宝贵财富,欢迎其他的DBA来拍砖。 目录 1、什么是执行计划?执行计划是依赖于什么信息 2、 统一SQL语句的写法减少解析开销 3、 减少SQL语句的嵌套 4、 使用“临时表”暂存中间结果 5、 OLTP系统SQL语句必须采用绑定变量 6、 倾斜字段的绑定变量窥测问题 7、 begin tran的事务要尽量地小 8、 一些SQL查询语句应加上nolock 9、加nolock后查询经常发生页分裂的表,容易产生跳读或重复...
ROW_NUMBER分页
--提取分页数据,返回总记录数 create procedure Proc_GetDataPaging_ReturnDataCount ( @SqlString varchar(6000), --查询语句 @PageNumber int, --当前的页码 @PageSize int, --每页显示的数据量 @SequenceField varchar(100), --排序字段 @DataCount int out --总数据量 ) as begin --提取总记录数 declare @Sql nvarchar(2000) set @Sql = N'select @countNum = count(1) from ('+ @SqlString+') as a' exec sp_executesql @Sql,N'@countNum int out',@DataCount out declare @BNum int declare ...
SQL Server创建约束
SQL Server 2008 如何查看与创建约束 SQL Server中有五种约束类型,分别是 PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE约束、DEFAULT约束、和CHECK约束。查看或者创建约束都要使用到 Microsoft SQL Server Managment Studio。 1. PRIMARY KEY约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key)。一个表只能有一个主键,而且主键约束中的列不能为空值。 查 看PRIMARY KEY约束可以在object explorer中依次展开Databases –> 选择你要查看的数据库(...
SQL Server智能提示插件下载
Sql Server2008格式化工具,SQL Server智能提示插件下载 http://pan.baidu.com/share/link?shareid=120804&uk=3372720248
SQL中那些可能你不知道的事
SQL中的随机 日期与时间 根据笔划排序 Soundex 保存特殊类型(img/mp3) 不算格式化的格式化 聚合函数用在多列 关于自增列 HAVING or WHERE 结果集中重复的行 用选择来填充 重命名表 本文不是SQL教程,只是关于T-SQL的一点小结及吐槽。 对于SQL入门的学习,推荐一本32开大小的小巧书目《SQL Server编程必知必会》,对于每个知识点介绍得很简单但很到位,如果你不想阅读那些动辄四五百页的大作的话,这本书完全够用。另外一本进阶的书目 《The Art of SQL》很出名,那是我打算...
SQL各种分页方法汇总
SQL各种分页方法汇总 平常工作,尤其是面试中经常遇到这样一个问题,查询表A中31到40条的记录,ID可能是不连续的。 如果ID连续 select * from A where ID between 31 and 40 如果ID不连续,提供三种写法 --两次对表A查询效率较低 select top 10 * from A where ID not in (select top 30 ID from A) --外层查询没有对表A查询,效率大有提高 select top 10 * from (select top 40 * from A order by ID) as t order by t.ID desc --ROW_NUMBER()函数效率更高,s...
再说SQL索引与SQL优化
站长推荐:本文适合细细品味! (一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个 聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以 ...
SQLServer全文搜索与Like的区别
SQLServer全文搜索与Like的区别 在SQL Server中,Like关键字可以实现模糊查询,即确定特定字符串是否与制定模式相匹配。这里的模式可以指包含常规字符和通配符。在模式匹配过程中,常 规字符必须与字符串中指定的字符完全匹配。不过通过使用通配符可以改变这个规则,如使用?等通配符可以与字符串的任意部分相匹配。故Like关键字可以在 数据库中实现模糊查询。 另外数据库库管理员也可以利用全文搜索功能对SQL Server数据表进行查询。在可以对给定的标进行全文查询之前,数据库管理元必须对这个数据表建立全文索引...
日志数据的存储
日志数据的存储 很多人喜欢把日志数据存放到数据库里,表面上看起来似乎不错,而且“将来也许我需要对这些数据进行复杂的查询”,这样的话很得人心。这样做并不是一个特别差的做法,但如果你把日志数据和你的产品数据存放到一个数据库里就非常不好了。 也许你的日志记录做的很保守,每次web请求只产生一条日志,或者。对于整个网站的每个事件来说,这仍然会产生大量的数据库插入操作,争夺你用户需要的数据库资源。如果你的日志级别设置为verbose或debug,那等着看你的数据库着火吧。 你应该使用一些比如Splu...