我正在寻找有关 SQL Server 实际上如何更详细地处理查询执行的信息(例如缓冲区/内存中保存哪些数据,以及即使涉及的表中仅一列发生更新更改,它如何决定获取新数据)在查询等中)

如果有人知道来源请告诉我?


我们有一个使用 SQL Server 2000 的 Web 应用程序,它每 30 秒频繁读取近 70% 的表(仪表板)。同时发生大量写入。

请告诉我对上述场景的优化有什么建议吗?

有帮助吗?

解决方案

没有人能够为您提供如何解决优化问题的答案。这需要访问您的数据库服务器。为了解决您的问题,您需要大致了解数据库的工作原理,为此您需要阅读一些内容。

网上资源还可以,但以下三本书是无价的。前两本书包含有关 SQL Server 如何工作的非常详细的信息。最后一个是如何编写查询的指南,但也讨论了引擎如何查看查询。

  1. 卡伦·达莱尼:SQL Server 2008 内部结构
  2. SQL Server 2005:实用故障排除:
  3. 本甘 等人:SQL Server 2008 内部:T-SQL 查询

其他提示

这将需要很多帖子回答内部的类型的问题,我建议你开始阅读一些白皮书/博客和一些书籍。

有关2000根·亨德森的SQL Server体系结构会给你深刻的内部细节,对于最近SQL的版本,他做了一个2005年的实际故障排除这是不坏,和卡伦·德莱尼的SQL 2008内幕的书是非常好的。

您应该检查执行计划。

在执行查询之前的Ctrl-L或问题SSMSSET SHOWPLAN_TEXT ON

这会给你使用什么指标的详细信息,其中连接算法应用等。

您可能还希望看到的统计数据:

SET STATISTICS TIME ON
SET STATISTICS IO ON

,它会给你多少读取实际表,高速缓存等进行了所做的信息,以及有多少时间(实际和CPU时间)做每个查询服食。

关于SQL Server 2008中的缓冲管理: http://msdn.microsoft。 COM / EN-CA /库/ aa337525.aspx

然后,可以与其他主题的信息在左侧栏中浏览。

至于外部源去, MSDN 有一个全面的优化您的SQL Server 2000安装,特别是模式与实践资源上的性能和可扩展性纸。

如果你知道从哪里开始寻找,采取与如已经提到检查SQL配置和查询计划一个自下而上的方法。否则,从上向下展开有效地了解参与重新编译查询的费用,如何索引,以及如何查询优化器使用统计数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top