SQL如何优化才能降低查询速度[难]

很大很大的一个视图,外围调用它之后还要进行sum操作等的 SQL语句,怎么优化 能把查询时间降低到 几秒,现在是2分钟将近。

建立索引,非聚集索引无效.

回头,我整个语句出来,先抛出问题.
...全文
322 18 打赏 收藏 举报
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
说的都很有道理 不过我觉得实践的案例更有说服力
  • 打赏
  • 举报
回复
铁歌 2013-06-17
SQL优化技巧有很多,关键是两点: 1. 索引的设计优化 遵循索引的原则,主键外键建立索引、where条件使用的经常列要索引、Group/order by的列要索引 根据条件可以适当建立符合索引,然后对于一些在select出现的列,避免kid loop操作可以使用include子句 如create index ix_customers_date on customs(cust_date) include(firstname,lastname) 2. 写SQL语句时对执行计划是否理解, 有没有反复调试系统所选择的SQL执行计划是否最优 其实操作cost大于1的都可以优化 ,优化的方式可以采用改写SQL的方法, 几个大表关联的时候是否使用 到了恰当索引直接对cost有大的影响。
  • 打赏
  • 举报
回复
xiaoxiangqing 2013-06-13
方法只有两个: 1.索引 2.分区
  • 打赏
  • 举报
回复
最爱午夜 2013-06-13
1、先做数据结构底层,减少不必要的存储空间,能用varchar(10)就不要用varchar(11),因为一行减少一个字节,那么1亿行就可以减少差不多100MB存储空间,每次去读取数据时也能减少io。 2、做好表分区, 3、索引优化, 4、查询优化, 5、数据文件和日志文件,temp数据库文件分别存放不同的物理磁盘。 6、硬件优化,使用转速高的磁盘或直接用固态硬盘。 7、64位系统和64位数据库。 8、多核CPU, 9、如果可能,内存越多越好,甚至把整个数据表存放至内存中。
  • 打赏
  • 举报
回复
4w行数据 向版主致敬
  • 打赏
  • 举报
回复
不过,我是想知道各位在设计类似这种 有大量数据的 表结构时,编写SQL时,以及业务功能规划时,如何降低 sqlserver运算时间,除了索引外。
  • 打赏
  • 举报
回复
这个语句太复杂了,牵涉了好多表,决定重构系统了,不研究这个优化了,基本无意义。 各位坐等接分吧。。。
  • 打赏
  • 举报
回复
n27741 2013-06-08
视图包含计算? 千万别这么干,我讲过一个视图里面取绝对值的情况, 取消求绝对值,视图 4秒查完。加上ABS运算,20s 的样子
  • 打赏
  • 举报
回复
tcmakebest 2013-06-08
视图中本身包含了计算列等等的就没有多少办法优化了
  • 打赏
  • 举报
回复
张雨露 2013-05-22
坐等语句和执行计划
  • 打赏
  • 举报
回复
最爱午夜 2013-05-22
哈哈,视图只是为了代码美观和简洁,除非是使用索引视图。 另外,优化还得从语句去优化,乱建索引没有任何用处。
  • 打赏
  • 举报
回复
Mr_Nice 2013-05-22
看题目吓我一跳,怎么降低速度!! 这个确实是个问题。 呵呵! 先发结构上来看看吧。
  • 打赏
  • 举报
回复
铁歌 2013-05-22
多少行数据?先在本机上调整后,然后在跑链接服务器的
  • 打赏
  • 举报
回复
發糞塗牆 2013-05-21
引用 2 楼 IUPRG 的回复:
索引视图? 系统不是我写的,这个SQL也非本人所著,因这个视图是多处引用的,我也不敢轻易就取消。 目前只能优化,但没有好的思路。
那你把执行计划贴出来看看
  • 打赏
  • 举报
回复
KevinLiu 2013-05-21
执行计划贴出来看吧
  • 打赏
  • 举报
回复
索引视图? 系统不是我写的,这个SQL也非本人所著,因这个视图是多处引用的,我也不敢轻易就取消。 目前只能优化,但没有好的思路。
  • 打赏
  • 举报
回复
發糞塗牆 2013-05-21
你去看看索引视图的限制,如果没有影响,那就用索引视图,另外可以不用视图就不要用
  • 打赏
  • 举报
回复
发帖
疑难问题

2.1w+

社区成员

MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
加入社区
帖子事件
创建了帖子
2013-05-21 03:54
社区公告
暂无公告