SQL Server
you_tube
BEGIN 上网; EXCEPTION WHEN mm THEN 逮住; WHEN OTEHRS THEN NULL;END;
展开
-
SQL Server索引原则
具体出处不详。 如何让你的SQL运行得更快 ----人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它转载 2009-04-14 11:35:00 · 646 阅读 · 0 评论 -
高效SQL查询之索引覆盖(index coverage)
今天做SQL 优化,查找执行计划时,执行计划,发现此执行计划与以往的计划有所区别;找录互联网,终于找一篇有关研究比较深入的文章;原执行计划使用的是索引扫描,突然一下会使用索引覆盖技术,效率大增;SELECT * 的真相:索引覆盖(index coverage)SELECT *的效率很糟糕吗?当然,所有人都知道这一点,但是为什么呢? 是因为返回了太多的数据?这是一个普遍的回答原创 2009-06-03 21:27:00 · 875 阅读 · 0 评论 -
SQL SERVER性能优化之索引I
1.有时可以使用系统配置的视图来报告索引使用的数据和频度信息;select * from sys.dm_db_index_usage_stats2.查看当前破碎级别的所有信息;SELECT * FROM sys.dm_db_index_physical_stats (DB_ID(N'Test'), OBJECT_ID(N'Person.Address'), NULL, NUL原创 2009-09-03 21:22:00 · 274 阅读 · 0 评论 -
SQL SERVER性能优化--执行计划重用
有时数据不连接,或者不完整时,我们的查询计划会产生不同的效率,下面来看看;USE People--制造分布不平均的数据记录CREATE TABLE t(c1 int identity(1,1) primary key,c2 int,c3 nvarchar(10))INSERT t(c2,c3) VALUES(1,N'Hello')SET NOCOUNT ONDECLARE原创 2009-07-29 23:23:00 · 653 阅读 · 0 评论 -
SQL SERVER性能优化--计划缓存和重编译
SQL SERVER将编译过的执行计划放在内存的计划高速缓存区(Plan Cache)中;当SQL SERVER执行时,会先到该高速缓存区寻找是否有对应的计划;1、计划高速缓存不同方面Ad-hoc高速缓存当应用程序在批处理内传递一句以上的UPDATE、DELETE或SELECT等T-SQL语句到SQL SERVER时,称之为“Ad-hoc查询”,SQL SERVER针对这类语句的高速缓原创 2009-07-28 20:38:00 · 614 阅读 · 0 评论 -
SQL SERVER性能优化--内存配置
现在的内存已经是越来越大,超过4GB已经不是什么平常事了,但是目前我们用的windows server2003大部分还是32位的,32位的操作系统最大也只支持4GB的内存,如果运行SQL数据库的服务器上有超过4GB的内存,那么应当在SQL服务器上开启AWE(Addresswinodwing Extension)地址窗口扩展,否则就算内存再大,SQL也没法利用。use mastergoe原创 2009-07-28 19:18:00 · 296 阅读 · 0 评论 -
SQL SERVER性能优化--Tempdb相关问题
TEMPDB不支持自动压缩,且它的数据库和文件压缩能力是有限制的;如不得不压缩TEMPDB的大小,建议使用离线功能,如下操作:1.停止SQL SERVER服务;2.找到sqlservr.exe在磁盘中的位置;3.使用sqlservr.exe输入命令sqlservr -c -f,这样启动SQL SERVER时,TEMPDB的大小能够保持最小;4.使用TSQL命令:ALTER DA原创 2009-09-03 21:16:00 · 687 阅读 · 0 评论 -
SQL SERVER性能优化--日志管理工具
Windows内部提供了两个精选的工具,用于协助日志自动化、日志处理以及日志数据解释; 1.Logmanlogman可用来安排日志记录的开始时间和结束时间;它与使用Windows AT 调度程序以及Performance Monitor特性得到的结果类似;如:logman create counter nightly_log -b 7/27/2009 23:00:00 -e原创 2009-08-29 22:11:00 · 405 阅读 · 0 评论 -
SQL SERVER性能优化--缓存
SQL SERVER 从版本2005开始就将对象等其它一些不为人知的东东展现出来了;1.sys.dm_os_memory_cache_counters--返回缓存运行状况的快照。sys.dm_os_memory_cache_counters 提供有关已分配的缓存条目、缓存条目的使用情况以及内存源的运行时信息。结果集:cache_address varbinary(8)原创 2009-08-25 20:51:00 · 290 阅读 · 0 评论 -
SQL SERVER性能优化--内存压力
利用sys.dm_os_virtual_dump以及建于其上的一个定制化视图来识别VAS的碎片问题;IF OBJECT_ID('vasummary','v') IS NOT NULLDROP VIEW vasummaryGOCREATE VIEW vasummary AS SELECT size = vadump.size,reserved = SUM(CASE (C原创 2009-08-25 22:29:00 · 289 阅读 · 0 评论 -
经典T-SQL收集
1.1实现分组编号功能法一:SQL SERVER 2Kdeclare @tab table(id int, str char(1))insert @tab select null, 'A' union all select null, 'B' union all select null, 'B' union all select null, '原创 2009-08-26 22:28:00 · 255 阅读 · 0 评论 -
批量更新表字段
在项目升级时,时有升级时把一些表的字段搞错,为了防止以下情况再次出现,这里写了一批处理;一、游标扫描整个库对象,提取所需用表; declare @sql varchar(200)declare @table varchar(20)declare mobileDuan cursor forselect namefrom sys.objects where原创 2009-09-16 09:27:00 · 308 阅读 · 0 评论 -
CDC
CDC(变更数据捕获)环境:SQL SERVER 2008 及以上对于某些要求有效性的应用程序来说,查询数据库中已更改的数据的能力是一项很重要的要求。通常,为了确定数据更改,应用程序开发人员必须在其应用程序中使用触发器、时间戳列和其他表的组合来实现自定义跟踪方法。创建这些应用程序通常涉及多项工作,导致架构更新,并且通常带来较高的性能开销: 一:安装及配置CDC功能使用在数据库级原创 2010-03-03 09:56:00 · 596 阅读 · 0 评论 -
经典系统表应用
1.1 查看表信息及结构SELECT 表名=case when a.colorder=1 then d.name else '' end, 字段序号=a.colorder, 字段名=a.name, 标识=case when COLUMNPROPERTY( a.id,a.name,'IsI原创 2009-12-01 14:00:00 · 248 阅读 · 0 评论 -
BOM结构查询
-->引用请附上此信息-->黑木崖上的蜗牛-->2009.04.28类别一:查询子树-->测试环境if object_id('dbo.Gepro') is not nulldrop table dbo.Geprogo create table dbo.Gepro(id varchar(10) , GName varchar原创 2009-04-28 16:57:00 · 582 阅读 · 0 评论 -
SQL SERVER性能优化--分区表
本文演示了SQLServer2008 分区表实例;1.创建测试数据库;2. 创建分区函数;3. 创建分区架构;4. 创建分区表;5. 创建分区索引;6. 分区切换;7. 查询哪些表使用了分区表; -- 作成者 leno--日期: 2009-06-06 23:50:0原创 2009-04-25 12:04:00 · 2858 阅读 · 0 评论 -
高效SQL查询之Graphical Execution Plans
Blog Address:http://www.simple-talk.com/sql/performance/graphical-execution-plans-for-simple-sql-queries/The aim of this article is to enable you to interpret basic graphical execution plans, in o翻译 2009-06-05 09:29:00 · 899 阅读 · 0 评论 -
高效SQL查询之索引(V)
先站在应用程序的角度说说它们的不同。1、 直接拼SQL就像大家了解的那样,直接拼SQL带来了SQL注入攻击,带来了拼时些许的性能损失,但是拼不用添加SqlParameter,会少写很多代码——很多人喜欢直接拼,也许就因为这点。这种做法会把你拼好的SQL原样直接发送到DB服务器去执行。(注意类似”exec yourproc ‘param1’, 12”的语句不在此范畴,这是调用存储过程转载 2009-06-03 21:21:00 · 392 阅读 · 0 评论 -
磁盘I/O性能影响
如果将 SQL Server 配置成仅包含几个千兆字节 (GB) 的数据,且不承担繁重的读或写活动,便没有太大的必要关注磁盘 I/O主题,以及在硬盘之间平衡 SQL Server I/O 活动以获取最佳性能。但是要建立包含成百上千 GB字节的数据且/或承担繁重的读和/或写活动的大型 SQL Server 数据库,就有必要在多个硬盘之间平衡负荷,以配置最佳的 SQLServer 磁盘 I/O 性能。转载 2009-01-19 11:11:00 · 1700 阅读 · 1 评论 -
如何收缩 SQL Server 中的 Tempdb 数据库
Tempdb 信息tempdb 是一个临时工作区。除其他用途外,SQL Server 还将tempdb 用于: •显式创建的临时表的存储。•保存在查询处理和排序过程中创建的中间结果的工作表。•具体化的静态光标。SQL Server 在 tempdb事务日志中记录的信息只足够用于回滚事务,而不足以用于在数据库故障恢复过程中重原创 2009-01-19 12:54:00 · 1255 阅读 · 0 评论 -
详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
1.简介:有时经常会碰到要求遍历所有表,改变表的属性时,这时可以用到这两个存储过程;还有要经常检查所有的数据库或用户表,比如: 检查所有数据库的容量; 看看指定数据库所有用户表的容量, 所有表的记录数...,这时一般处理的方式有:1.游标处理;2.用这两个存储过程; 如用sp_MSforeachtable就可以非常方便的达到相同转载 2009-01-19 09:38:00 · 395 阅读 · 0 评论 -
高效SQL查询之SQL Server表驻留内存和检测
将SQL Server数据表驻留内存是SQL Server提供的一项功能,在一般小型系统的开发过程中估计很少会涉及到。这里整理了相关文档资料,演示如何把SQL Server中一个表的所有数据都放入内存中,实现内存数据库,提高实时性。1, DBCC PINTABLEMarks a table to be pinned, which means Microsoft SQL Server转载 2009-03-27 15:41:00 · 534 阅读 · 0 评论 -
SQL游标原理和使用
数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。1.1 游标和游标的优点 在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是原创 2009-03-27 15:34:00 · 227 阅读 · 0 评论 -
SQL优化-索引优化1
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)…… (一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clusteredindex,也称聚类索引、簇集索引)和非聚集索引(non转载 2009-03-16 14:14:00 · 206 阅读 · 0 评论 -
SQL注入专题
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数转载 2009-03-27 15:28:00 · 358 阅读 · 0 评论 -
SQL Server 2005中的T-SQL增强
SQL codeSQL Server 2005中的T-SQL增强(一)丰富的数据类型 Richer Data Types 1、varchar(max)、nvarchar(max)和varbinary(max)数据类型最多可以保存2GB的数据,可以取代text、ntext或image数据类型。 CREATE原创 2009-03-27 15:43:00 · 238 阅读 · 0 评论 -
高效SQL查询之索引(VI)
我们先看NestedLoop和MergeJoin的算法(以下为引用,见RicCC的《通往性能优化的天堂-地狱 JOIN方法说明》):==================================NestedLoop: foreach rowA in tableA where tableA.col2=? { search rowsB from table转载 2009-06-03 21:19:00 · 1391 阅读 · 0 评论 -
高效SQL查询之索引(II)
上回我们说到评估一条语句执行效率主要看逻辑IO(啥是逻辑IO,啥是物理IO见联机文档),这次我们继续。我们先说说,返回多行结果时,为什么SQLServer有时会选择index seek,有时会选择index scan。以nonclustered index为例说明。像所有的索引B树一样,非聚集索引树也包括完全由索引数据组成的根节点和中间级节点;但是和聚集索引树不同的是,聚集索引树叶转载 2009-06-03 21:10:00 · 411 阅读 · 0 评论 -
时间格式转换函数
--=======================CONVERT()================================================== Select CONVERT(varchar(100),GETDATE(),0)--: 05 16 2006 10:57AMSelect CONVERT(varchar(100),GETDATE(),1转载 2009-07-06 10:30:00 · 259 阅读 · 1 评论 -
SET ANSI_NULLS选项
最近查询数据碰到一个奇怪的问题,如下:declare @tab table(id int,name varchar(10))insert into @tabselect 1,'a' union allselect 2,'ee' union allselect 3,'c' union allselect 4,'d'declare @taba table(id原创 2010-01-14 12:51:00 · 266 阅读 · 0 评论 -
SQL优化-索引优化2
二、改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name='zhangsan' and tID > 10000 和执行: select * from table1 where tID > 10000 and name='zh转载 2009-03-16 14:17:00 · 294 阅读 · 0 评论 -
DBCC工具程序--验证状态
1.DBCC CHECKALLOC检查指定数据库的磁盘空间分配结构的一致性语法:DBCC CHECKALLOC( [ { database_name | database_id | 0 } ] [ , NOINDEX | { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_R原创 2009-08-07 10:05:00 · 309 阅读 · 0 评论 -
DBCC工具程序--数据库维护
DBCC工具程序维护数据库:1.DBCC DBREINDEX对指定数据库中的表重新生成一个或多个索引。语法:DBCC DBREINDEX( table_name [ , index_name [ , fillfactor ] ]) [ WITH NO_INFOMSGS ] table_name包含要重新生原创 2009-08-06 15:15:00 · 497 阅读 · 0 评论 -
备份还原--文件组备份和还原
接上贴,数据库备份过了,现在就来备份文件组吧:)数据库备份:http://blog.csdn.net/you_tube/archive/2009/07/21/4365514.aspx 就用分区表那个数据库吧分区表示例http://blog.csdn.net/you_tube/archive/2009/04/25/4122258.aspx --1、备份数据库文件组原创 2009-07-28 13:50:00 · 884 阅读 · 0 评论 -
备份还原--数据库备份和还原
最近在搞封闭开发,有些东西基本上都忘记了,在网上重新搜索了一下贴子,总结了一下文件组备份和还原的一些东西;环境:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) Jul 9 2008 14:43:34 Copyright (c) 1988-2008 Microsoft Corporation Develop原创 2009-07-21 08:58:00 · 420 阅读 · 0 评论 -
备份恢复--恢复删除的系统存储过程
Dbcc的一个用法扩展储存过程被删除以后可以有很简单的办法恢复:比如:删除DROP PROCEDURE sp_addextendedprocDROP PROCEDURE sp_OACreateexec sp_dropextendedproc xp_cmdshell恢复dbcc addextendedproc ("sp_OACreate","odsole70.dl原创 2009-07-20 22:09:00 · 240 阅读 · 0 评论 -
清理SQL Server 2008数据库日志
第一步, 在收缩前先查看日志的大小:SELECT *FROM sysfilesWHERE name LIKE %LOG%GO 第二步, 把数据库的恢复模式设成”简单”:ALTER DATABASE 库名 SET RECOVERY SIMPLEGO转载 2009-04-25 12:02:00 · 1788 阅读 · 0 评论 -
备份还原之备份设备
将备份设备添加到 Microsoft SQL Server 2005 数据库引擎的实例中。sp_addumpdevice [ @devtype = ] device_type , [ @logicalname = ] logical_name , [ @physicalname = ] physical_name [原创 2009-02-20 08:54:00 · 393 阅读 · 0 评论 -
备份还原之还原经典文档
SQL备份与还原经典文档======================================================================SQL备份======================================================================--------------------转载 2009-01-21 09:13:00 · 262 阅读 · 0 评论 -
SQL Server 2005 Administration: sqlcmd
osql and sqlcmd switchesWhen SQL Server 7 was released, osql was introduced and isql was deprecated. SQL Server 2005 provides the new sqlcmd tool, deprecates osql, and eliminates isql. You can st翻译 2009-01-16 17:13:00 · 1053 阅读 · 0 评论