- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sqlserver,执行计划,缺少索引
数据库应用与性能优化全集第八章实验二实验 报告 实验目的:证明索引有助于提高数据库的查询速度。 实验步骤: 1、使用SQL语句,查询日期截止为XX-09-1015:00:10号码为的未交费账单信息。 2、开启“包括实际的执行计划”和“包括客户端统计信息”功能,再次使用相同的语句查询。 3、查看执行计划中的资源使用情况和客户端统计信息中的查询的响应时间。 4、新建非聚集索引。 对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题,首先,打开【SQLServerManagementStudio】,输入一个查询语句看看SqlServer是如何显示查询计划的吧。select,,,,,from OrdersViewasv where=XX-12-1and唯一方式是通过这两种方式对查询进行测试,看看发生了什么。[,XX,XX] ***** 查看图形执行计划时,你可能会发现某个图标的文字用红色显示,而非通常情况下的黑色。这意味着相关的表的一些统计数据遗失,统计数据是查询优化器生成一个好的执行计划所必须的。 遗失的统计数据可以通过右键这个图标,并选择”创建遗失的统计资料”来创建。这时会弹出”创建遗失的统计数据”对话框,通过它可以很容易地创建遗失的统计数据。 当可以选择去更新遗失的统计资料时,应该总是这样做,因为这样极有可能让你正在分析的查询语句从中获得效能上的好处。[,XX,XX] ***** 有时你会在图形执行计划上看到标识了”Assert”的图标。这意味着查询优化器正在验证查询语句是否有违反引用完整性或者条件约束。如果没有,则没有问题。但如果有的话,查询优化器将无法为该查询建立执行计划,同时会产生一个错误。[,XX,XX] ***** 你常常会在图形执行计划上看到标识成”书签查找(BookmarkLookup)”的图标。书签查找相当常见。书签查找的本质是告诉你查询处理器必须从数据表或者聚集索引中来查找它所需要的数据行,而不是从非聚集索引中直接读取。 打比方说,如果一个查询语句的SELECT,JOIN以及WHERE子句中的所有字段,都不存在于那个用来定位符合查询条件的数据行的非聚集索引中,那么查询优化器就不得不做额外的工作在数据表或聚集索引中查找那些满足这个查询语句的字段。 另一种引起书签查找的原因是使用了SELECT*。由于在绝大多情况下它会返回比你实际所需更多的数据,所以应该永不使用SELECT*. 从性能方面来说,书签查找是不理想的。因为它会请求额外的I/O开销在字段中查找以返回所需的数据行。 如果认为书签查找防碍了查询的性能,那么有四种选择可以用来避免它:可以建立WHERE子句会用到的聚集索引,利用索引交集的优势,建立覆盖的非聚集索引,或者(如果是SQLServerXX/XX企业版的话)可以建立索引视图。如果这些都不可能,或者使用它们中的任何一个都会耗用比书签查找更多的资源,那么书签查找就是最佳的选择了。[,XX,XX] 有时查询优化器需要在tempdb数据库中建立临时工作表。如果是这样的话,就意味着图形执行计划中有标识成IndexSpool,RowCountSpool或者TableSpool的图标。 任何时候,使用到工作表一般都会防碍到性能,因为需要额外的I/O开销来维护这个工作表。理想情况下应该不要用到工作表。不幸的是并不能总是避免用到工作表。有时当使用工作表比其它选择更有效率时,它的使用实际上会增强性能。 不论何种情况,图形执行计划中的工作表都应该引起你的警觉。应该仔细检查这样的查询语句,看看是否有办法重写查询来避免用到工作表。有可能没有办法。但如果有的话,你就朝提升这个查询的性能方面前进了一步。[,XX,XX]。 ***** 在图形执行计划上看到流聚合(StreamAggregate)图标就意味着有对一个单一的输入进行了聚合。当使用了DISTINCT子句,或者任何聚合函数时,如AVG,COUNT,MAX,MIN,或者SUM等,流聚合操作就相当常见。[,XX,XX] **** 查询分析器与ManagementStudio不是唯一的可以生成、显示查询执行计划的工具。SQLServerProfiler也可以显示执行计划,但格式是文本形式的。使用SQLServerProfiler来显示执行计划的一个优势是,它能为实际运行的大量查询产生执行计划。如果使用查询分析器和ManagementStudio,则一次只能运行一个。 使用Profiler捕获、显示执行计划时,必须使用如下的配置生成一个追踪: 捕获事件
文档评论(0)