文章分类 -  SQLSERVER

摘要:笔记64-徐 其他资源等待 1 --其他资源等待 2 3 --除了上面说的这些最常见的资源等待问题,一个用户任务在某些情况下,还可能 4 --等待下面这些资源 5 6 --1、LATCH_X 7 --在SQL里,除了同步数据页面访问的latch(buffer latch),还有很多其他内部 8 --资源要同步。在这些资源上也会出现latch。如果SQL处理得正常,这些latch的申请 9 --和释放是非常快的,用户应该不会看到这种等待。但是在一些不正常的情况下,会 10 --看到任务在等待某个latch资源。常见的原因有: 11 12 --(1)某个先前的任务出现了访问... 阅读全文
posted @ 2013-07-29 09:05 桦仔 阅读(689) 评论(0) 推荐(1) 编辑
摘要:笔记63-徐 12章 SQL语句调优 P357 --12章 SQL语句调优 P357 --懒惰的肥兔的文章 索引include的使用:http://www.cnblogs.com/lzrabbit/archive/2012/07/03/2549558.html --当确定了应用性能问题可以归结到某一 阅读全文
posted @ 2013-07-29 09:04 桦仔 阅读(622) 评论(0) 推荐(0) 编辑
摘要:笔记61-徐 编译与重编译 P372 1 --编译与重编译 P372 2012-12-28 2 3 --当SQL收到任何一个指令,包括查询(query)、批处理(batch)、存储过程、触发器(trigger) 4 --预编译指令(prepared statement)和动态SQL语句(dynamic SQL Statement) 5 --要完成语法解释、语句解释,然后再进行“编译(compile)”,生成能够运行的“执行计划(execution plan)” 6 --在编译的过程中,SQL会根据所涉及的对象的架构(schema)、统计信息以及指令的具体内容,估算 7 --可能... 阅读全文
posted @ 2013-07-29 09:01 桦仔 阅读(604) 评论(0) 推荐(0) 编辑
摘要:笔记60-徐 读懂执行计划 P383 1 --读懂执行计划 P383 2012-12-29 2 3 --编译结束以后,就可以让SQL打出执行计划。执行完毕后,还可以让SQL打出 4 --按照这个执行计划运行的统计信息。通过这样的方法,用户可以研究为什麽 5 --一句指令会运行时间长。 6 7 --得 阅读全文
posted @ 2013-07-29 08:59 桦仔 阅读(801) 评论(0) 推荐(0) 编辑
摘要:笔记59-徐 问题定位与解决方法 1 --问题定位与解决方法 第13章 2013-2-6 2 --思路: 3 --1、确认是否因为做了物理I/O而导致性能不佳 4 --如果一条语句所要访问的数据页面没有事先缓存在内存里,那么数据 5 --页面要在语句运行的过程中,从磁盘读到内存里,这是一个很昂贵的动作。 6 --如果语句要访问的数据页面比较多,就会产生比较长的时间消耗。 7 --多数情况下,有数据缓存时的语句运行时间,会比没有数据缓存的时间, 8 --相差一个到几个数量级 9 10 11 --所以语句调优的前提,是要确认数据页面能够事先缓存在内存里。如果这个 12... 阅读全文
posted @ 2013-07-29 08:57 桦仔 阅读(643) 评论(0) 推荐(0) 编辑
摘要:笔记58-徐 调整数据库设计来优化语句性能 要慎重选择索引的第一个字段,最好选择一个重复记录最少的字段。这是因为-》索引上的统计信息只保存索引第一个字段/索引前导列的数据直方图,《SQL Server2012实施与管理实战》 (直方图是索引中键值的抽样图,帮助sqlserver选择哪个最合适的索引) 阅读全文
posted @ 2013-07-29 08:55 桦仔 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:笔记57-徐 调整语句设计提高性能 1 --调整语句设计提高性能 2013-2-11 P449 2 3 --当一个问题语句,已经排除了系统资源瓶颈、阻塞与死锁、物理I/O、编译与重编译 4 --参数嗅探这些因素,也发现调整索引或使用计划指南不能达到要求,那怎么办? 5 --不幸的是,我们已经基本上把SQL上常见的调优方法都介绍了。在有些情况下,一个语句 6 --的写法决定了他天生是一条复杂的语句,SQL很难使用最优的方法来运行他。这时候 7 --调整SQLSERVER,可能效果都不会很明显。用户要想想,如果这个问题更多的是由语句 8 --本身导致的话,那调整语句设计是不是更... 阅读全文
posted @ 2013-07-29 08:54 桦仔 阅读(656) 评论(0) 推荐(1) 编辑
摘要:笔记55-徐 SQLSERVER数据库迁移步骤 1 --SQLSERVER数据库迁移步骤: 2 --1、SELECT @@VERSION返回的号码必须完全一样 1、sql2005 2、企业版 3、操作系统 win7SP1 sql补丁包不用一样 3 --2、在备用服务器的命令行窗口,用指令以单用户模式启动SQL服务 4 --net start MSSQLSERVER /m 5 6 --命令成功执行应该返回如下信息: 7 --the sqlserver (dr) service is starting... 8 --the sqlserver (dr) service was... 阅读全文
posted @ 2013-07-29 08:51 桦仔 阅读(1974) 评论(0) 推荐(0) 编辑
摘要:笔记54-徐 如何启用DAC功能 专用管理员连接功能 在sqlserver management studio中使用DAC连接的时候,要选择新建查询或者数据库引擎查询,不能使用一上来默认的那个登录框进行DAC连接登录,那个是连接数据库引擎的,如果用DAC连数据库引擎,会报不支持DAC连接。 先断开连 阅读全文
posted @ 2013-07-29 08:49 桦仔 阅读(702) 评论(0) 推荐(0) 编辑
摘要:笔记53-徐 跟踪死锁和释放死锁的SQL脚步 1 跟踪死锁和释放死锁的SQL脚步 2 /****************************************************/ 3 /* Created by: SQL Server Profiler 2005 */ 4 /* Date: 2013/02/13 10:30:02 */ 5 /****************************************************/ 6 7 USE master 8 GO 9 -- Create a Q... 阅读全文
posted @ 2013-07-29 08:47 桦仔 阅读(507) 评论(0) 推荐(0) 编辑
摘要:笔记52-徐 读懂语句运行的统计信息 1 --读懂语句运行的统计信息 2013-1-2 P397 2 3 --对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如 4 --语句的编译时间、执行时间、做了多少次磁盘读等。如果DBA能够把 5 --问题语句单独测试运行,可以在运行前打开下面这三个开关,收集 6 --语句运行的统计信息。这些信息对分析问题也很有价值 7 8 SET STATISTICS TIME ON 9 SET STATISTICS IO ON 10 SET STATISTICS PROFILE ON 11 12 --要说明的是,后面的测试结果,是... 阅读全文
posted @ 2013-07-29 08:45 桦仔 阅读(807) 评论(0) 推荐(3) 编辑
摘要:笔记51-徐 参数嗅探 Parameter Sniffing 1 --参数嗅探 Parameter Sniffing 2013-2-8 2 3 --当使用存储过程的时候,总是要使用到一些变量。变量有两种,一种 4 --是在存储过程的外面定义的。当调用存储过程的时候,必须要给他代入 5 --值。这种变量,SQL在编译的时候知道他的值是多少。 6 7 --例如: 8 USE [AdventureWorks] 9 GO 10 DROP PROC Sniff 11 GO 12 CREATE PROC Sniff(@i INT) 13 AS 14 SELECT COUNT(b.[... 阅读全文
posted @ 2013-07-29 08:43 桦仔 阅读(3962) 评论(1) 推荐(2) 编辑
摘要:笔记50-徐 读取数据库的事务日志增长的trace文件 1 读取数据库的事务日志增长的trace文件 事件号是93 2013-6-13 2 DECLARE @tracefile NVARCHAR(MAX) 3 SET @tracefile = ( SELECT LEFT([path], 4 LEN([path]) - CHARINDEX('\', REVERSE([path]))) + '\log.trc' 5 FROM sys.traces 6 ... 阅读全文
posted @ 2013-07-29 08:41 桦仔 阅读(324) 评论(0) 推荐(0) 编辑
摘要:笔记49-徐 关闭SQLSERVER默认的事件跟踪 1 关闭SQLSERVER默认的事件跟踪 Default Trace 2013-6-13 2 --在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG就不会生成trc文件 3 sp_configure 'show advanced options' , 1; 4 GO 5 RECONFIGURE; 6 GO 7 sp_configure 'default trace enabled' , 0 ; 8 GO 9 RECONFIGURE;10 GO11 - 阅读全文
posted @ 2013-07-29 08:39 桦仔 阅读(770) 评论(0) 推荐(0) 编辑
摘要:笔记48-徐 阻塞问题定位方法 https://social.msdn.microsoft.com/Forums/zh-CN/b1370f2d-41f8-4907-bace-2bb5a184d9db/xactabort?forum=sqlserverzhchs基本上你只有在SSMS里面才能达到这个默 阅读全文
posted @ 2013-07-27 16:24 桦仔 阅读(1555) 评论(0) 推荐(0) 编辑
摘要:笔记46-徐 一个常见的select ,update ,insert ,delete动作要申请的锁 1 --一个常见的select ,update ,insert ,delete动作要申请的锁 2 3 --两个表都加了索引的字段 4 --employeeID 5 --managerid 6 --mo 阅读全文
posted @ 2013-07-27 16:21 桦仔 阅读(3352) 评论(0) 推荐(0) 编辑
摘要:笔记45-徐 如何监视锁的申请,持有和释放 锁的数量和数据库调优的关系 1 --如何监视锁的申请,持有和释放 锁的数量和数据库调优的关系 2 3 --在分析不同形式的语句执行对申请锁行为的影响之前,DBA要先了解怎麽去监视 4 --一个连接当前持有的锁,以及怎麽去监视一个语句的执行过程,SQLSERVER对锁 5 --的申请和释放行为 6 7 --1、检查一个连接当前所持有的锁 8 --通常可以使用sp_lock这个命令来列出当前SQL里所有的连接所持有的锁的内容要授予先可以获得锁 9 EXEC [sys].[sp_lock] 10 11 12 --在SQL2005之... 阅读全文
posted @ 2013-07-27 16:19 桦仔 阅读(646) 评论(0) 推荐(0) 编辑
摘要:笔记42-徐 锁产生的背景 1 --锁产生的背景 2 --事务是关系型数据库的一个基础概念。他是作为单个逻辑工作单元执行的一系列操作 3 --一个逻辑工作单元必须有4个属性,称为原子性,一致性,隔离性,持久性(ACID) 4 --只有这样才能成为一个事务 5 6 --原子性 7 --事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 8 --比如一个事务要修改100条记录,要不就100条都修改,要不就都不修改。不能 9 --发生只修改了其中50条,而另外50条没有改的情况10 11 --一致性12 --事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则. 阅读全文
posted @ 2013-07-27 16:15 桦仔 阅读(475) 评论(0) 推荐(0) 编辑
摘要:笔记41-徐 阻塞与死锁 1 --阻塞与死锁 2 3 --对于一个多用户数据库系统,尤其是大量用户通过不同应用程序同时访问同一个数据库的系统 4 --如果发生一个或多个以下现象,管理员就应该检查是否遇到了阻塞或者死锁了 5 --(1)并发用户少的时候,一切正常。但是随着并发用户的增加,性能越来越慢 6 7 --(2)客户端经常收到以下错误 8 --错误1222 9 --已经超过了锁请求超时时段10 11 --错误120512 --事务(进程ID XXX)与另一个进程被死锁在XX资源上,并且已被选作死锁牺牲品。请重新运行13 --该事务14 15 16 --超时错误17 --timeout .. 阅读全文
posted @ 2013-07-27 16:14 桦仔 阅读(617) 评论(0) 推荐(0) 编辑