我有一个大的非规范化表,该表反映了每年加载的固定长度平面文件的组成。 112列和40万条记录我在构成针对该表最多运行的查询的where子句的3列上具有唯一的聚集索引。索引分数是0.01。查询性能不错,不到一秒。但是,返回所有记录大约需要2分钟。执行计划显示100%的成本在聚簇索引扫描(非搜索)上。
没有需要联接的查询(由于分母)。该表用于报告。所有字段均为nvarchar类型(数据文件中字段的长度)。
除了规范化表格。我还可以做些什么来提高性能。
最佳答案
尝试对查询进行分页。您可以将结果分成100行的组。这样,您的用户将很快看到结果。另外,如果他们不需要每次查看结果时都查看所有数据,则将大大减少检索到的数据量。
除此之外,向查询添加用于过滤数据的参数将减少返回的数据量。
这篇文章是开始分页的好方法:SQL Pagination Query with order by
只需将答案中的“ 50”和“ 100”替换为使用页面变量,就可以了。
关于sql - 大型非规范化表优化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9537311/