我有触发器,它不断更新我的SQL Server 2014表中的记录。 同时我从该表中选择记录。即使表只包含50条记录,选择查询查询也需要很长时间。
请建议能让我获得更快结果的东西。
答案 0 :(得分:1)
尝试使用一些表提示来获取没有锁定表的数据。 msdn.microsoft.com/en-us/library/ms187373%28v=sql.120%29.aspx
SELECT field FROM table (nolock)
答案 1 :(得分:0)
由于在没有确切细节的情况下回答问题并不简单,所以您可以考虑以下几点:
您是否总是从表中读取所有行,或者是否有可以编入索引的where子句并且会减少锁定?
您是在更新表中的所有行,还是更新还可以使用索引?
更新过程触发器是否涉及更大的事务?这个更新是否可以在事务结束时移动,以某种方式与持久操作等分开,以便表锁更快?
您是否看过锁定,实际被锁定的页面以及当时正在执行的流程是什么,还是有几个不同的进程在执行更大的阻塞链?它是行级锁定还是整个表都被锁定了?
我只会使用其他答案建议的(nolock)提示作为最后的手段,当你完全确定你理解它的含义时。这不仅仅是让事情变得更快的事情。
答案 2 :(得分:-1)
试试这个
Select Name,--Fields-- from table_name with (NOLOCK)