摘要: 关于学习编程和做好DBA的关系我这里只是讨论SQLSERVER DBA我发现很多DBA都是从程序员开始做起的,一般做了4、5年之后就转型做DBA或者管理或者销售啊。为什麽一开始不直接做DBA,DBA需要会TSQL,操作系统知识,数据库知识,可能还要熟悉业务但是不需要学习编程语言,例如:C# VB C... 阅读全文
posted @ 2013-01-18 10:46 桦仔 阅读(2581) 评论(4) 推荐(1)
摘要: SQLSERVER编译与重编译编译的含义当SQLSERVER收到任何一个指令,包括查询(query)、批处理(batch)、存储过程、触发器(trigger)、预编译指令(prepared statement)和动态SQL语句(dynamic SQL Statement)要完成语法解释、语句解释,然后再进行“编译(compile)”,生成能够运行的“执行计划(execution plan)”。在编译的过程中,SQLSERVER会根据所涉及的对象的架构(schema)、统计信息以及指令的具体内容,估算可能的执行计划,以及他们的成本(cost),最后选择一个SQLSERVER认为成本最低的执行计划 阅读全文
posted @ 2013-01-17 21:59 桦仔 阅读(7791) 评论(2) 推荐(1)
摘要: SQLSERVER中得到执行计划的方式得到执行计划的方式有两种:1、一种是在指令的前面打开一些开关,让执行计划信息打在结果集里,这种方法比较适合在一个测试环境里对单个语句调优。这些开关最常用的有1 SET SHOWPLAN_ALL ON2 3 SET SHOWPLAN_ALL ON --(是不是reuse了一个执行计划,SQSERVERL有没有觉得缺少索引),只能在XML的输出里看到4 5 SET STATISTICS PROFILE ON还有如果使用SSMS的话,可以用快捷键:Ctrl+L小写L 他会执行你的语句并显示执行计划,但是不会返回结果集2、另一种方法是使用SQL Trace里的事件 阅读全文
posted @ 2013-01-13 22:41 桦仔 阅读(2281) 评论(0) 推荐(0)
摘要: SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON 对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。 如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句 阅读全文
posted @ 2013-01-13 21:46 桦仔 阅读(10759) 评论(15) 推荐(9)
摘要: SQLSERVER的排序问题 在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序? 其实,只要语句里没有指定“order by”,SQLSERVER并不会按照顺序返回的。有可能 阅读全文
posted @ 2013-01-02 14:51 桦仔 阅读(2131) 评论(0) 推荐(0)
摘要: SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇) 最近真的没有什么精力写文章,天天加班,为了完成这个系列,硬着头皮上了 再看这篇文章之前请大家先看我之前写的第一篇和第二篇 第一篇:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇) 第二篇:SQLSERVER是怎 阅读全文
posted @ 2012-12-29 17:02 桦仔 阅读(4149) 评论(5) 推荐(3)
摘要: SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第二篇)在看这篇文章的内容之前,请阁下先看第一篇的内容,因为没有第一篇的基础的话会看到一头雾水哦o(∩_∩)o第一篇的地址:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)------------------------------开始----------------------------------------------------------------索引上的数据检索方法如果一张表上没有聚集索引,数据将会以随机的顺序存放在表格里。以[SalesOrderDetail_test]为例子(这个表在第一篇里已经 阅读全文
posted @ 2012-12-22 17:23 桦仔 阅读(1780) 评论(0) 推荐(0)
摘要: SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)在第一篇里大家先搭建好测试环境,了解SQL Server中的执行引擎,了解一下表的信息,在第二篇再跟大家详细地说清楚索引在第三篇里跟大家说一下统计信息。因为篇幅比较长,所以暂时分成第一篇、第二篇、第三篇,不然大家看得很痛苦---------------------------------------------------------------开始-----------------------------------------------------先给出一篇文章的地址,都是博客园里的文章:http://www.cnblo 阅读全文
posted @ 2012-12-22 16:51 桦仔 阅读(2763) 评论(0) 推荐(0)
摘要: 在SQL语句调优的时候,大部分都会查看语句执行时间,究竟SQLSERVER显示出来的统计结果是什么意思?下面看一下例子比较简单的语句:1 SET STATISTICS TIME ON2 USE [pratice]3 GO4 SELECT * FROM [dbo].[Orders]结果: 1 SQL Server 分析和编译时间: 2 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 3 4 SQL Server 执行时间: 5 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 6 7 SQL Server 执行时间: 8 CPU 时间 = 0 毫秒,占用时间 =... 阅读全文
posted @ 2012-12-17 23:55 桦仔 阅读(9017) 评论(0) 推荐(3)
摘要: SQLSERVER中的自旋锁在SQLSERVER中的锁有很多,例如什么意向共享锁,排他锁,行,页锁 这些都属于LOCK而latch比lock更轻量级,只在内存中存在,一般用来锁住数据页面,防止多人同时修改内存中的一个数据页面而今天介绍的spin lock则比上面两种锁更更轻量级的spin lock介绍:lock和latch以外还有一种更轻量级的同步资源:spin lock(自旋锁),第一次看到spin lock这个名词是在潘爱民老师写的《Windows内核原理与实现》这本书里看到的,估计SQLSERVER也借鉴了Windows操作系统的一些同步技术。在SQLSERVER里,有些spin loc 阅读全文
posted @ 2012-12-15 22:31 桦仔 阅读(1077) 评论(0) 推荐(0)