
正文
sqlserver带参数查询很慢,sqlserver数据量大查询慢
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
sql使用时间查询非常缓慢,为什么?
查询缓慢也有很多原因,不仅是你的查询语句问题,有时候和你硬件也有关系。
原因也很简单,TASK_DATE 字段区分度太低了,走这个索引需要扫描的行数很大,而且还要进行额外的排序,优化器综合判断代价更大,所以就不选这个索引了。
UNION 因为会将各查询子集的记录做比较,故比起UNIONALL ,通常速度都会慢上许多。一般来说,如果使用UNION ALL能满足要求的话,务必使用UNION ALL。
开销,降低磁盘操作。坏处就是查询时会慢些。第二:把这100W行横向切成很多个表,比如每个月的记录装在一个表里,这样每个表的记录数可能只有几万,查询,更新都会快很多。坏处是查询,更新都不如原来好写。
用Profiler来跟踪查询,得到查询所需的时间,找出SQL的问题所在;用索引优化器优化索引1注意UNion和UNion all 的区别。UNION all好1注意使用DISTINCT,在没有必要时不要用,它同UNION一样会使查询变慢。
如果时间短, 那么可以排除掉 SQL 执行慢的问题。如果 在 SQL 2008 的 SQL Server Management Studio 那里执行就很慢了, 那么你需要优化一下 SQL 语句。
相关问答
Q1: sqlserver单表大数据查询缓慢,高分求助
这个就是数据不存在,如果挨个遍历表,速度可能不如使用视图。使用索引视图技术,这个跟使用表查询速度相差不大。sqlserver是高级版本,可以发挥多CPU优势,这个时候速度也相差不大。
当 SQL Server 尝试为这些大分配, 之一分配虚拟内存, 该操作失败, 它将尝试删除 hopes 是释放一部分这个内存缓存查询计划。
所以优化器计算后,不会对子查询中的c_t应用并行,因为此时并行会采用全表扫描,效率肯定没有索引扫描快。
慎重使用视图的联合查询,尤其是比较复杂的视图之间的联合查询。一般对视图的查询最好都分解为对数据表的直接查询效果要好一些。
Q2: sqlserver链接oracle查询数据很慢,是什么原因?
1、尽量少使用数据链。查询语句少使用连接查询啊,还有OraOLEDB.Oracle].YZMC应该是表没有这个数据 或者是脏数据吧 。
2、原因是该游标被其他进程以EXCL X mode 持有了。 实际该 cursor: pin S wait on X等待事件往往是由于其他因素诱发的。Mutex争用仅仅是问题的症状,但根本原因需要Database Consultant 进一步挖掘。
3、这种情况有很多可能性,首先,你的服务器的负载情况会影响到你的数据读取速度的,如果数据库服务器执行的进程过多,会导致查询速度下降很多。
4、ORACLE数据库在线数据字典,ORACLE在线数据字典能够反映出ORACLE动态运行情况,对于调整数据库性能是很有帮助的。
Q3: sql查询增加一个查询条件后速度变慢,怎么样优化?
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2、进行SQL性能优化的方法:SQL语句不要写的太复杂。一个SQL语句要尽量简单,不要嵌套太多层。使用『临时表』缓存中间结果。
3、程序中:保证在实现功能的基础上,尽量减少对数据库的访问次数。通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担,能够分开的操作尽量分开处理,提高每次的响应速度。
Q4: 我的程序,查询数据库很慢。请问怎么提高查询速度
1、、查询语句不好,没有优化 可以通过如下方法来优化查询 :把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。
2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
3、程序中:保证在实现功能的基础上,尽量减少对数据库的访问次数。通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担,能够分开的操作尽量分开处理,提高每次的响应速度。
4、提高查询效率首先要想到的就是加索引,那什么是索引呢?MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
关于sqlserver带参数查询很慢和sqlserver数据量大查询慢的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





