随笔分类 - SQLServer2008笔记
《Microsoft Sql server 2008 Internals》读书笔记
摘要: 上文我们了解简单参数化查询的不足和预查询(Prepared Queries),现在我们了解编译对象和重编译的原因。
阅读全文
摘要: 前文主要提到简单参数化和强制参数化。下面我们继续了解简单查询的不足和预查询(Prepared Queries)
阅读全文
摘要: 在这一节,我们将继续关注Adhoc和参数化:简单参数化和强制参数化。
阅读全文
摘要: 通过第八章的查询优化,我们大致了解SQL Server中的查询优化进程及查询执行的一些细节。因为查询优化通常是复杂和耗时的进程,SQL Server频频受益于重用已经生成并保存在计划缓存中的查询计划,而不是每次都产生一个新计划。当然,如果前一个计划不理想,SQL Server还是会生成一个新的计划。当然也可以强制生成新计划。在这一章,我们将关注SQL Server 2008的计划缓存,了解它是如何组织的。
阅读全文
摘要: 本文继续关注分区表(Partitioned Tables) 和数据仓库(Data Warehousing)。SQL Server 2005针对分区表的并行查询的执行有一个局限性。APPLY操作符的使用在对扫描每个交互的分区时有限制,即允许SQL Server 2005对每个表只允许一个线程。虽然也允许并行查询。但大多数情况下还是被忽略了。而且,APPLY模式不考虑分区的大小差异,仍然使用一个线程处理一个最大或最小的分区。
阅读全文
摘要: 本文继续了解索引视图(Indexes View)。注意:虽然索引视图是在SQL Server 2000中已经加入,但只有SQL Serer 2008的企业版才支持索引视图的匹配。
阅读全文
摘要: 前几篇主要介绍了查询结构优化中的几个关键概念:统计(Statistics)、基准估计(Cardinality estimation)和成本(costing) ,今天开始真正进入主题:索引选择。
阅读全文
摘要: 上篇主要介绍了筛选统计和字符串统计、基线估计,本文将关注Limitation和Costing
阅读全文
摘要: 上篇主要列举了统计的概念和统计的设计、统计的浓度。本文将关注筛选统计和字符串统计、基线估计。
阅读全文
摘要: 上篇介绍了架构优化,下来我们一起了解几个非常重要的概念:统计(Statistics)、标量评估(Cardinality estimation)和成本(costing)
阅读全文
摘要: 上文主要介绍了查询可选计划的存储和操作符如(计算标量、计算序列 等)。现在我们继续来了解优化架构。
阅读全文
摘要: 上文主要介绍了查询优化的入门基础和查询优化器如何浏览查询计划中的规则和属性。现在我们继续来了解查询可选计划的存储和操作符如(计算标量、计算序列等)。
阅读全文
摘要: SQL Server内置的查询优化器负责对一个给定的SQL语句执行判断作出最合理的查询计划。因为查询优化器并没有过多的内容展示于外界,因此不像SQL引擎中的其他组件那样为人熟知。第八章(The Query Optimizer)主要介绍查询优化器及其工原理,本章读完后,你应该会加深在较高层次的优化架构的理解,并熟知一个特定的查询计划为什么会被查询优化器所采用。此外,你应该能解决特定的案例,比如查询优化器没有选择预期的执行计划,以及什么因素影响了优化器的选择。 第八章是本书的另外核心技巧之一--查询优化,它在底层数据存储的基础上,主要介绍对已有的SQL语句或查询进行针对性的测试和优化方法。这里有一些实用的技巧。
阅读全文
摘要: 这一节我们继续了解稀疏列的物理存储。
阅读全文
摘要: 上文简单介绍了 filestream数据存储和修改的一些特性。下面我们来继续了解SQL Server 2008中新增的稀疏列(sparse column)。
阅读全文
摘要: 上文简单介绍了filestream数据的基础,本文继续了解FileStream的一些特性。
阅读全文
摘要: 上文简单介绍了不限长度的Large Object Data存储形式,以及存储在数据行的LOB数据。本文简要介绍MAX-Length数据及添加数据到LOB列的存储,另外还有filestream数据的基础。
阅读全文
摘要: 上文简单介绍了限制长度的Large Object Data存储形式,本文将介绍不限长度的Large Object Data存储形式。
阅读全文
摘要: 第五章《Table》和第六章《Indexes:Internals and Management》我们主要讨论了“规则行”在表和索引中的存储机制,第五章中我们了解到规则行是以“固定变量”的格式存储,SQL Server提供了另外一种格式存储数据,即“列描述”(Column Descriptor)。它能存储一些特殊的值(包括固定变量和不能适应常规8-KB大小页面的CD格式的值),在这章中。我们将讨论一些超过正常数据行 大小限制的数据,它们被存储作为"行溢出"或Large Object(LOB)数据。此外,SQL Server 2008还提供了一种常规列的复杂存储列,即稀疏列(Sparse Columns),和新
阅读全文
摘要: 前面我们主要了解Inserting/Deleting Rows 时SQL Server的内部存储机制,这一篇我们来看看Update Rows的内部机制。SQL Server更新行有多种方式,自动并隐性地为特定的操作选择最快的更新策略,在决定策略时,SQL Server评估将要影响行的数量,行是如何(通过查询或索引恢复、或者索引本身)被访问的,索引键是否发生变化等。更新在两种情况下发生:一是在原始行改变一列值到新值。二是delete紧跟着一个insert。Update能被查询处理器或存储引擎管理。
阅读全文