创建统计信息来优化查询性能
来源:互联网 发布:21天学通c语言第7版 编辑:程序博客网 时间:2024/05/16 07:42
今天使用sqlserver2008的“数据库引擎优化顾问”在对一个sql进行优化时, 索引建议里给出如下建议目标:
--CREATE STATISTICS
CREATE STATISTICS [_dta_stat_1758629308_16_10_1] ON [dbo].[PrmOrderPromiseTime]([DistributionId], [StoreId], [OrderId])
-- 包含索引
CREATE NONCLUSTERED INDEX [_dta_index_PrmOrderSiteActualTime_6_1582628681__K1_2_7] ON [dbo].[PrmOrderSiteActualTime]
(
[OrderId] ASC
)
INCLUDE ( [SiteId],
[ActualSiteId]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
尤其是create statistics,粗略地了解了下。 如下知识来自csdn:
1.STATISTICS是一个表中某几个列的统计信息,如一个表是全校学生某次考试的分数,score列的类型是int,取值范围是0到100的整数,那么statistc就是每个分数分别有多少人。在一个特定的查询中,使用索引可能加快速度,也可能减慢速度,所以SQL server要事先对使用索引的效果做一个预测,预测的依据就是STATISTICS。
2.默认情况下,表或索引更改了,统计会相应地自动更新,以保持统计是最新的。但是可以在数据库选项中关闭这个自动更新的功能,提高数据表的更新速度。但需要定期手动更新统计。因为过期的统计信息会对是否使用索引的判断带来误判。没发现SQL2000和SQL2005的统计有什么区别。
3.index要依赖正确的STATISTICS才能发挥作用。而你的SQL2005优化工具对缺乏STATISTIC的列自动产生了创建语句。
具体可在msdn上寻求帮助http://msdn.microsoft.com/zh-cn/library/ms188038(SQL.105).aspx、http://msdn.microsoft.com/zh-cn/library/bb510669.aspx
sql方面要学的东西太多了,以后还需耐心的继续学习。
- 创建统计信息来优化查询性能
- 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
- SQL优化一例,由于动态性能视图统计信息不准确引起的查询缓慢
- Trafodion性能优化之更新统计信息
- 数据库性能优化、统计信息与对象统计信息概述收集、扩展统计信息、dbms_stats.get_prefs
- 通过设置myeclipse配置信息来优化性能
- 优化程序统计信息
- SQL优化:统计信息
- 统计性能优化思路
- SQL Server查询性能优化——创建索引原则
- Sql Server查询性能优化之创建合理的索引
- 使用索引统计信息(Index Statistics)优化查询语句,提高查询效率
- sqlserver2008性能优化信息
- hibernate查询性能优化
- 数据库查询性能优化
- 数据库查询性能优化
- oracle查询性能优化
- 查询性能优化
- 订单分组查询策略
- 用与不用聚集索引的区别 sql用例
- js啊,我被open撞了一下腰
- 一段看似简单却不简单、老生常谈的程序
- C++ new详解
- 创建统计信息来优化查询性能
- 程序员的职业道德
- 程序设计之HardCoding
- c# 可空类型
- 使用TransactionScope类定义代码块以参与事务
- 在运行时获取ibatIS执行的sql
- 解决Maven中OutOfMemory错误
- 栈(Stack)的基本操作
- 库存产品日期查询功能sql优化