sql-server – 什么时辰建设STATISTICS而不是建设索引更好?
我已经找到了大量有关STATISTICS的信息:怎样维护它们,怎样手动或自动从查询或索引建设它们等等.可是,我无法找到有关何时建设它们的任何指导或“最佳实践”信息:哪些环境从手动建设的STATISTICS工具中获益比从索引中获益更多.我已经看得手动建设过滤统计信息,辅佐查询分区表(由于为索引建设的统计信息包围了整个表,而不是每个分区 – brillaint!),但必定必需有其他方案可以从统计工具中受益不必要索引的细节,也不值得维护索引或增进阻塞/死锁的机遇. @JonathanFite在评述中提到了索引和统计之间的区别:
这是很好的信息,首要是由于它辅佐我澄清了我的题目: 怎样知道这一点(或与STATISTICS的举动和性子相干的任何其他技能信息)有助于确定何时选择CREATE STATISTICS而不是CREATE INDEX,出格是在建设索引时将建设相干的STATISTICS工具?只有STATISTICS信息而没有索引会更好地处事于什么环境? 假如也许的话,假若有一个STATISTICS工具比INDEX更得当的场景的事变示例,那将是超等有效的. 因为我是一名视觉进修者/头脑家,我以为将STATISTICS和INDEX之间的差别并排看作也许有助于确定何时STATISTICS是更好的选择. Thingy PROs CONs ------- ---------- ------------------- INDEX * Can help sorts. * Takes up space. * Contains data (can * Needs to be maintained (extra I/O). "cover" a query). * More chances for blocking / dead-locks. STATISTICS * Takes up very little space. * Cannot help sorts. * Lighter maintenance / won't * Cannot "cover" queries. slow down DML operations. * Does not increase chances of blocking / dead-locks. 以下是我在探求这个时发明的一些资源,纵然是统一个题目,也没有答复: SQL Server Index vs Statistic SQL Server Statistics Questions We Were Too Shy to Ask Statistics. Are multicolumn histograms possible? **为了清晰起见,我没有这方面的谜底,我现实上但愿获得一些人的反馈意见,以提供好像稀疏的错误信息在这里的互联网. 办理要领你的题目环绕着 – 什么时辰建设统计与建设索引(建设统计数据)是一件功德.从我的sql server内部注释(SQLSkills类 – IE1和IE2)和SQL Server internals book,下面是我有限的领略: SQL Server统计信息只是包括有关索引键值和通例列值的重要信息的体系工具. SQL Server行使基于本钱的模子来尽快选择“足够好”的执行打算.忠诚度预计(预计要在每个步调上处理赏罚的行数 SQL Server在预计大数目时不会行使非聚簇索引.将必要KEY或RID轮回操纵,因此它维护索引(和列)的统计信息 统计数据有两个重要的事项: >直方图仅存储最左侧统计(索引)列的数据漫衍信息.它还存储有要害值的多列密度的信息.根基上, 请记着,指数选择性是一个与密度成反比的指标,即色谱柱具有的独一值越多,其选择性越高. 当特定查询不常常运行时,您可以选择建设列级统计信息而不是索引.列级统计信息有辅佐 参考: > Column Statistics Give the Optimizer an Edge by Kalen Delaney 留意:像Paul White或Aaron Bertrand这样的人可觉得your good question提供更多颜色. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |