新服务器的 SQL Server tempdb 优化技巧?

2023-12-31

我正在计划全新安装SQL Server 2005在我必须订购的新机器上。我知道临时数据库调优对整体来说非常重要表现SQL Server 实例的。

我读到,最佳实践是创建与 CPU(或核心?)一样多的 tempdb 文件。那是对的吗?还有其他推荐吗,例如对于硬盘/RAID设置配置我应该注意什么?

Thanks!


以下是我从各种来源进行的研究。

为了优化 tempdb 性能,请注意物理磁盘配置、文件配置以及数据库内的一些设置。

物理磁盘配置

tempdb 应该驻留在其上自己的专用物理磁盘。这允许它从 SQL Server 上的其余卷中分离 I/O 事务。

要将 tempdb 移动到新的磁盘驱动器,请使用ALTER DATABASE。它是执行此操作的关键 T-SQL 命令。 Microsoft 在 SQL Server 2005 联机丛书中提供了一个很好的示例。文章名称为 ALTER DATABASE (Transact-SQL),具体章节为'G。将 tempdb 移动到新位置。

tempdb 是一个非常高写入量的数据库。因此,RAID 5 阵列不适合放置它。你应该把tempdb在 RAID 0 或 RAID 10 阵列上因为它们针对高写入应用程序进行了优化。如果您能为 tempdb 的每个物理数据库文件提供额外的 RAID 0 或 RAID 10 阵列,您将获得更高的性能。

数据库文件

你应该有服务器中每个 CPU 核心一个物理文件。因此,如果您有双芯片、双核服务器,则应该有四个用于 tempdb 数据库的物理数据库文件。添加更多数据库文件时,在以下位置配置文件很重要相同的初始大小和相同的增长设置。这样,SQL Server 将尽可能均匀地跨文件写入数据。

数据库文件大小

tempdb 数据库的大小会影响系统的性能。例如,如果为 tempdb 定义的大小太小,则部分系统处理负载可能会减少每次重新启动 SQL Server 实例时,tempdb 都会自动增长到支持工作负载所需的大小。您可以通过增加 tempdb 数据和日志文件的大小来避免这种开销。

在生产环境中确定 tempdb 的适当大小取决于许多因素,包括现有工作负载和所使用的 SQL Server 功能。 Microsoft 建议您通过在 SQL Server 中执行以下任务来分析现有工作负载test环境:

  1. 为 tempdb 设置自动增长(在测试环境中!).
  2. 执行单个查询或工作负载跟踪文件并监视 tempdb 空间使用情况。
  3. 执行索引维护操作,例如重建索引和监视tempdb空间。
  4. 使用前面步骤中的空间使用值来预测您的总工作负载使用情况;根据预计的并发活动调整此值,然后设置 tempdb 的大小 因此。

tempdb 的最小大小建议如下:

   Envir. Size  DB Size (MB)  Log Size (MB)
   -----------  ------------  -------------
   Small                1024            256
   Medium               5120           1024
   Large               10024           2048

数据库设置

您可以通过以下方式进一步提高 tempdb 性能禁用自动更新统计数据,这将为您的 tempdb 节省一些工作。您还可以设置自动创建统计选项为 false.

免责声明:更改设置时应小心。根据您对 tempdb 施加的负载类型,更改设置可能会对系统性能产生不利影响。

要实现最佳 tempdb 性能,请遵循中提供的指南和建议优化 tempdb 性能 http://msdn.microsoft.com/en-us/library/ms175527.aspx.

如何监控tempdb的使用情况?

Running tempdb 磁盘空间不足 can 造成重大干扰在 SQL Server 生产环境中,可能会阻止正在运行的应用程序完成操作。

您可以使用sys.dm_db_file_space_usage动态管理视图来监视 tempdb 文件中这些功能所使用的磁盘空间。此外,要在会话或任务级别监视 tempdb 中的页面分配或释放活动,您可以使用sys.dm_db_session_space_usage and sys.dm_db_task_space_usage动态管理视图。

这些视图可用于识别使用大量 tempdb 磁盘空间的大型查询、临时表或表变量。还有几个计数器可用于监视 tempdb 中的可用空间以及正在使用 tempdb 的资源。

Links:

  • 微软技术网:在 SQL Server 2005 中使用 tempdb http://www.microsoft.com/technet/prodtechnol/sql/2005/workingwithtempdb.mspx
  • 搜索SQLServer.com:SQL Server tempdb 最佳实践可提高性能 http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1307255,00.html
  • MSDN 库:优化 tempdb 性能 http://msdn.microsoft.com/en-us/library/ms175527.aspx
  • 搜索SQLServer.com:配置 SQL Server 2005 TempDB 以提高性能 http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1180698,00.html
  • MSDN 库:tempdb 的容量规划 http://msdn.microsoft.com/en-us/library/ms345368.aspx
  • MSDN 库:对 tempdb 中磁盘空间不足进行故障排除 http://msdn.microsoft.com/en-us/library/ms176029.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新服务器的 SQL Server tempdb 优化技巧? 的相关文章

随机推荐