2011年6月28日

摘要: 看全部表的空间大小 我常用sp_spaceused来查看表所占的空间大小,可是一次只能看一个对象的。 今天有空写了个sp_spaceused2,可以同时看全部表的空间大小。 use master go EXEC sp_addmessage @msgnum = 55000, @severity = 16, @msgtext = N'Objects of type %s do not have sp... 阅读全文
posted @ 2011-06-28 15:04 围成 阅读(1043) 评论(0) 推荐(2) 编辑
摘要: 先说说这些误区。所谓“误区”,有一些是新手很容易犯的错误或者很容易忽略的问题,另外一些,则是像“耗子吃了盐会变成蝙蝠”一样,让我们从小就认为是正确的事情。如下:表上不管用得着用不着,都加个聚集索引。我们知道,表以两种方式组织物理存储:有聚集索引的“聚集表”;没有聚集索引的“堆”。在聚集表中,数据行按照聚集索引的顺序存储(这也是为啥一张表最多只能有一个聚集索引的原因);堆中,数据行的存储可以认为是不确定的。在偶《写有效率的SQL查询(II)》中曾经介绍过DB引擎如何在聚集表中通过非聚集索引查找目标数据:从非聚集索引树根开始seek,查找到目标索引行,然后通过索引行上存储的聚集索引键值,爬聚集索引 阅读全文
posted @ 2011-06-28 15:00 围成 阅读(372) 评论(0) 推荐(1) 编辑
摘要: 上回我们说到评估一条语句执行效率主要看逻辑IO(啥是逻辑IO,啥是物理IO见联机文档),这次我们继续。我们先说说,返回多行结果时,为什么SQLServer有时会选择index seek,有时会选择index scan。以nonclustered index为例说明。像所有的索引B树一样,非聚集索引树也包括完全由索引数据组成的根节点和中间级节点;但是和聚集索引树不同的是,聚集索引树叶节点包含的是基础表的数据页(我们常说,表的物理存储顺序和聚集索引相同,就是这个原因),非聚集索引树叶节点是索引页。SQLServer通过非聚集索引查找数据时,会通过这个非聚集索引键值去搜索聚集索引,进而检索基础表数据 阅读全文
posted @ 2011-06-28 14:59 围成 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。where条件的列上都得有统计信息。没统计信息SQLServer就无法估算不同查询计划开销优劣,而只能采用最稳妥的Scan(不管是table scan还是clustered index scan)。一般情况下我们不会犯这种错误——where条件里不使用非索引列是个常识。索引上的统计信息是无法删除的。尽量不使用不等于(!=)或者NOT逻辑运算符。这条规则被广为传颂,原因据联机文档和百 阅读全文
posted @ 2011-06-28 14:59 围成 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器;开放系统的存储分为:内置存储和外挂存储;开放系统的外挂存储根据连接的方式分为:直连式存储(Direct-Attached Storage,简称DAS)和网络化存储(Fabric-Attache... 阅读全文
posted @ 2011-06-28 14:57 围成 阅读(345) 评论(1) 推荐(0) 编辑
摘要: 这篇文章是有点迟了,最近我的课堂上要引用这篇博文——所以我想不得不写了。本文是我以前的一篇关于存储引擎文章 的升级版本,本文中将加入DIFF 和ML 映射页的解释。 在以前的这系列博文中,我已解释了数据库文件中的一些基本存储: • Anatomy of a record • Anatomy of a page • Anatomy of an extent • IAM pages, IAM chai... 阅读全文
posted @ 2011-06-28 14:53 围成 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 1、SQL Server2000中的IAM链 IAM(Index Allocation Map,索引分配映射)页用来跟踪单个文件中约4G大小的空间,跟踪的空间是按4G字节对齐。被跟踪的这4G大小的页被称为“GAM区间”(GAM Interval)。IAM页所跟踪的GAM区间中的空间是属于同一实体的(这里,我选择的是“实体”而没有使用SQL Server中的“对象”)。下面我们将了解IAM页的结构。... 阅读全文
posted @ 2011-06-28 14:52 围成 阅读(1197) 评论(0) 推荐(0) 编辑
摘要: 前面的文章我介绍了数据文件中的页,包括页结构和一些页类型。现在我想解释一下页是如何组织成区( extent )的。一个区是由数据文件中 8 个连续的页组成。区从数据文件头部开始,并且总是 64K 对齐(即: 8 页对齐)。区及其属性在 SQL SERVER 2000 和 2005 中是一模一样的。 SQL SERVER 中有两种类型的区:混合区和统一区。 混合区 分配给任意一条 IAM 链( SQ... 阅读全文
posted @ 2011-06-28 14:47 围成 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 继续存储引擎揭秘系列,今天讨论页结构。页是用来存储记录的。一个页是数据库文件中的一个 8192 字节段。页在数据文件中开始于 0 字节,并按 8192 字节对齐。下面是一个页的基本结构图: 页头部 页头部大小为 96 字节。在这部分我最想做的事是使用 DBCC PAGE 来看一个页头部,然后解释一下所有的字段含义。我使用以前《 page split 》文章用的数据库,下面是 DBBC PAGE 部... 阅读全文
posted @ 2011-06-28 14:46 围成 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 最后编辑:2010-10-21 原文地址: http://www.sqlskills.com/BLOGS/PAUL/post/Inside-the-Storage-Engine-Anatomy-of-a-record.aspx 本周我将发表一系列 SQL SERVER 中用来存储数据和跟踪分配的基本结构。大部分文章其实当初我在 TechEd2006 上开博时便发表过,但是现在我想更清晰地描述它,并... 阅读全文
posted @ 2011-06-28 14:33 围成 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 发布日期 : 1/13/2005 | 更新日期 : 1/13/2005 Jason Clark 下载本文的代码: NET0307.exe (133KB) 我在自己最近的编程中注意到一个趋势,正是这个趋势才引出本月的专栏主题。最近,我在基于 Microsoft® .NET Framework 的应用程序中完成了大量的 Win32® Interop。我并不是要说我的应用程序充满了自定义的 intero... 阅读全文
posted @ 2011-06-28 13:39 围成 阅读(327) 评论(0) 推荐(1) 编辑
摘要: 工作原理借用ffmpeg,mencoder两种工具,再其进程启动时加上相应的参数由于是跨越进程调用,而且mencoder进程同时间只能启动一个,所以采用消息队列来实现其异步调用,处理完在一个,再找消息队列再要一个支持绝大多数格式文件转为flv:"asf", "avi", "mpg", "3gp", "mov","wmv", "rm", "rmvb"支持消息队列方式异步转换支持生成缩略图片支持自定义格式大小由于mencoder文件夹较大, 阅读全文
posted @ 2011-06-28 13:30 围成 阅读(3286) 评论(4) 推荐(1) 编辑

导航