日期:2014-05-16  浏览次数:20733 次

怎么提高读表效率
有一张数据表,数据量很大,几十万到几百万的数据,如果现在要读这张表,用select 列1,列2 from table读效率会非常低,有什么方法可以提高查询效率吗?试过聚焦索引,效率几乎没变,求指导
------解决方案--------------------
没有where语句吗?在where语句中用得最多的那几个字段建立索引
------解决方案--------------------
可以看一些基本信息,首先执行
set statistics io , time on

然后再执行你的sql语句

贴上消息栏内容看看
------解决方案--------------------
如果查询这两个字段非常多那么还是INDEXED VIEW吧,否则没有WHERE 条件估计效率高不了。

另外ColumnStore。
------解决方案--------------------
引用:
有一张数据表,数据量很大,几十万到几百万的数据,如果现在要读这张表,用select 列1,列2 from table读效率会非常低,有什么方法可以提高查询效率吗?试过聚焦索引,效率几乎没变,求指导

如果只查找列1,列2并且没有WHERE条件的话,将列1,列2创建为非聚集索引,然后强制制定是用创建的这个索引,那么SQL Server应该是走INDEX SCAN.考虑到列1,列2占用的PAGE比整张表小很多,所以即使这样性能应该也会有提高。 

强制使用索引的例子:
 select id1 from test1 with(index(ix_id1))  
------解决方案--------------------
一、对要查询的列创建索引
二、查看执行计划,把慢的语句优化
三、在查询前加上索引引用例如
select /*+ index(a column1_index) */
   a.column1,
   a.column2
from A a