01 2013 档案

摘要:如何查看SQLSERVER的版本信息和SP补丁信息 打开SQLSERVER配置管理器,然后用鼠标左键双击打开属性对话框,然后选择高级选项卡就可以看到SQL的版本信息 以前经常使用以下语句来看版本信息,SP版本,现在双击一下鼠标就可以看到了,最重要的是方便客户,无理由叫客户写SQL语句来查看吧 SEL 阅读全文
posted @ 2013-01-29 00:08 桦仔 阅读(16048) 评论(0) 推荐(1) 编辑
摘要:查看SQLSERVER内部数据页面的小插件Internals Viewer(续)今晚继续用Internals Viewer查看了一下几个系统数据库,还有数据量比较大的adventureworks数据库,因为本人之前使用这个数据库做了一些实验文字就不多写了,请大家看一下图片MasterModelmsdbtempdb碎片脏页面众所周知,SQLServer增删改数据最先都是在内存中进行的,这可以大大加快数据操作的速度;当内存中的数据被修改了,而磁盘中的数据还没有被修改时,就产生了所谓的"脏页" ,脏页面包含了未提交事务脏页和已提交事务的脏页以下三种方法就是为同步内存和磁盘数据而产 阅读全文
posted @ 2013-01-21 21:05 桦仔 阅读(2383) 评论(0) 推荐(0) 编辑
摘要:查看SQLSERVER内部数据页面的小插件Internals Viewer 感觉internals viewer这个名字起得很好,内部查看。 这个小工具是我之前看园子里的某大侠转载的文章是看到的 文章地址:SQL Server2008存储结构之堆表、行溢出 http://www.cnblogs.co 阅读全文
posted @ 2013-01-20 23:30 桦仔 阅读(4587) 评论(8) 推荐(2) 编辑
摘要:SQLSERVER的非聚集索引结构我们知道SQLSERVER的数据行的存储有两种数据结构:A: 堆 B :B树(binary 二叉树)数据按照这种两种的其中一种来排序和存储,学过数据结构的朋友应该知道二叉树,为什麽用二叉树,因为方便用二分查找法来快速找到数据。如果是堆,那么数据是不按照任何顺序排序的,也没有任何结构,数据页面也不是首尾相连的,不像B树,数据页面使用双向链表首尾相连。堆表只依靠表里的IAM页(索引分配映射页)将堆的页面联系在一起,IAM里记录了页面编号,页面位置除非表里有聚集索引,如果没有的话那么表里的数据的存储就是堆结构那么非聚集索引呢?非聚集索引也是堆结构?其实SQLSERV 阅读全文
posted @ 2013-01-20 21:42 桦仔 阅读(2704) 评论(4) 推荐(0) 编辑
摘要:SQLSERVER DBCC命令大全DBCC DROPCLEANBUFFERS:从缓冲池中删除所有缓存,清除缓冲区在进行测试时,使用这个命令可以从SQLSERVER的数据缓存data cache(buffer)清除所有的测试数据,以保证测试的公正性。需要注意的是这个命令只移走干净的缓存,不移走脏缓存。由于这个原因,在执行这个命令前,应该先执行CheckPoint,将所有脏的缓存写入磁盘,这样在运行DBCC RROPCLEANBUFFERS 时,可以保证所有的数据缓存被清理,而不是其中的一部分。DBCC CacheStats:显示存在于当前buffer Cache中的对象的信息,例如:hit r 阅读全文
posted @ 2013-01-19 00:39 桦仔 阅读(21219) 评论(11) 推荐(8) 编辑
摘要:关于学习编程和做好DBA的关系我这里只是讨论SQLSERVER DBA我发现很多DBA都是从程序员开始做起的,一般做了4、5年之后就转型做DBA或者管理或者销售啊。为什麽一开始不直接做DBA,DBA需要会TSQL,操作系统知识,数据库知识,可能还要熟悉业务但是不需要学习编程语言,例如:C# VB C... 阅读全文
posted @ 2013-01-18 10:46 桦仔 阅读(2551) 评论(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 桦仔 阅读(7744) 评论(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 桦仔 阅读(2248) 评论(0) 推荐(0) 编辑
摘要:SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON 对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。 如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句 阅读全文
posted @ 2013-01-13 21:46 桦仔 阅读(10667) 评论(15) 推荐(9) 编辑
摘要:SQLSERVER的排序问题 在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序? 其实,只要语句里没有指定“order by”,SQLSERVER并不会按照顺序返回的。有可能 阅读全文
posted @ 2013-01-02 14:51 桦仔 阅读(2093) 评论(0) 推荐(0) 编辑