首页新闻找找看学习计划

SQLSERVER查询速度

1
悬赏园豆:20 [已解决问题] 解决于 2016-10-15 19:51

公司ERP系统中,某张表中有100多W数据,字段有100个左右,外键也比较多。
表需要经常插入、修改、删除、查询。
查询条件也不确定,可能是直接查询,也可能是关联查询,也可能是汇总计算。
使用索引,又怕影响插入、删除、修改语句的时间。
插入的数据每次都是上万条,时间也比较慢。

本人对数据库比较薄弱,不太懂,请高手们指点下。
如何优化查询和插入语句,先忽略服务器的性能问题,才能达到一个合格的系数?

imluzhi的主页 imluzhi | 初学一级 | 园豆:37
提问于:2016-10-13 15:33
< >
分享
最佳答案
0

插入可以想办法平滑下,比如异步插入(队列)或者blukcopy。

查询肯定要尽量走索引的,索引对插入的确有影响,但如果你建立了合适的索引还会因为索引导致插入慢的话那么就需要考虑其他方案了。

你可以用sqlprofiler追一下一段时间内的sql,那上面会显示相关消耗,把消耗大的拿出来执行下,执行后会提示你缺少什么索引(但不要盲目的按照它的提示来加,等你全部跑完后再看)

收获园豆:5
Daniel Cai | 专家六级 |园豆:10374 | 2016-10-14 10:44
其他回答(5)
0

这样的话建议弄个备份库出来查询用,查询不用索引会慢死你

收获园豆:5
webaspx | 园豆:1971 (小虾三级) | 2016-10-13 16:15

数据一直在更新,备份库我不太想考虑

支持(0) 反对(0) imluzhi | 园豆:37 (初学一级) | 2016-10-13 17:12
0

按业务一个一个优化.别想太多.一个表加几个索引影响不大.

收获园豆:5
吴瑞祥 | 园豆:28731 (高人七级) | 2016-10-13 16:36

好的

支持(0) 反对(0) imluzhi | 园豆:37 (初学一级) | 2016-10-13 17:11

请问为什么没有用到我设定的索引呢?

支持(0) 反对(0) imluzhi | 园豆:37 (初学一级) | 2016-10-13 17:16

@imluzhi: 不知道.看完整的sql吧.看样子是可以走username的索引的.而且你也得发下你的索引

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2016-10-13 18:06
0

不懂题主想做啥哦

数据库薄弱的话,要么学习让他不薄弱,要么只能找人帮你看了,

这么问是想要有句口诀就能直接开通任督二脉吗?

爱编程的大叔 | 园豆:29788 (高人七级) | 2016-10-13 17:09

学归学,问归问,我不想沉寂在自己的海洋里,我想了解下别人的看法

支持(0) 反对(0) imluzhi | 园豆:37 (初学一级) | 2016-10-13 17:11
0

首先,需要建索引

其次,可归纳不同的报表需求,制作几个基础数据的视图供查询使用(或者考虑索引视图)

最后,插入会慢么?多线程丢出去慢慢插呗

收获园豆:5
chanchaw | 园豆:73 (初学一级) | 2016-10-13 17:20

之前是不知道要不要建索引,现在建索引肯定要做视图索引的。谢谢

支持(0) 反对(0) imluzhi | 园豆:37 (初学一级) | 2016-10-13 17:22
0

不要人云亦云,除了学习,没有其他捷径

悦光阴 | 园豆:2239 (老鸟四级) | 2016-10-13 19:08

深表赞同, 事实上, 个人觉得这个提问, 很难回答, 能给出的也至只是一些很笼统的方向

支持(0) 反对(0) zhouandke | 园豆:202 (菜鸟二级) | 2016-11-19 00:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册