SQL Server 查询执行流程
-
22-09-2019 - |
题
我正在寻找有关 SQL Server 实际上如何更详细地处理查询执行的信息(例如缓冲区/内存中保存哪些数据,以及即使涉及的表中仅一列发生更新更改,它如何决定获取新数据)在查询等中)
如果有人知道来源请告诉我?
我们有一个使用 SQL Server 2000 的 Web 应用程序,它每 30 秒频繁读取近 70% 的表(仪表板)。同时发生大量写入。
请告诉我对上述场景的优化有什么建议吗?
解决方案
没有人能够为您提供如何解决优化问题的答案。这需要访问您的数据库服务器。为了解决您的问题,您需要大致了解数据库的工作原理,为此您需要阅读一些内容。
网上资源还可以,但以下三本书是无价的。前两本书包含有关 SQL Server 如何工作的非常详细的信息。最后一个是如何编写查询的指南,但也讨论了引擎如何查看查询。
其他提示
这将需要很多帖子回答内部的类型的问题,我建议你开始阅读一些白皮书/博客和一些书籍。
有关2000根·亨德森的SQL Server体系结构会给你深刻的内部细节,对于最近SQL的版本,他做了一个2005年的实际故障排除这是不坏,和卡伦·德莱尼的SQL 2008内幕的书是非常好的。
您应该检查执行计划。
在执行查询之前的Ctrl-L
或问题SSMS
按SET SHOWPLAN_TEXT ON
。
这会给你使用什么指标的详细信息,其中连接算法应用等。
您可能还希望看到的统计数据:
SET STATISTICS TIME ON
SET STATISTICS IO ON
,它会给你多少读取实际表,高速缓存等进行了所做的信息,以及有多少时间(实际和CPU
时间)做每个查询服食。
关于SQL Server 2008中的缓冲管理: http://msdn.microsoft。 COM / EN-CA /库/ aa337525.aspx
然后,可以与其他主题的信息在左侧栏中浏览。