AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 196237
Accepted
sql_girl
sql_girl
Asked: 2018-01-26 06:03:16 +0800 CST2018-01-26 06:03:16 +0800 CST 2018-01-26 06:03:16 +0800 CST

tempdb 自动增长的最佳实践是什么?

  • 772

我有一个客户端服务器,该实例上有大约 15 个数据库,数据总量约为 100 GB。其中一个数据库用于 sysaid 应用程序。他的临时数据库文件是一个 mdf 一个 ndf,当然还有一个 ldf。mdf 与其他 mdf 位于同一驱动器上,如果是 ldf 文件也是如此。

当我设置自动增长属性时,我知道我应该将其保持为不受限制的增长,但是当我需要在自动增长 % 或 MB 之间进行选择时,该选择什么?我怎么知道要配置什么号码?

提前致谢!

sql-server t-sql
  • 2 2 个回答
  • 11348 Views

2 个回答

  • Voted
  1. Best Answer
    Aaron Bertrand
    2018-01-26T07:07:37+08:002018-01-26T07:07:37+08:00

    对我来说,最好的做法是在一开始就将文件大小调整到足够大,以适应您期望的增长。

    让我们使用一些简单的数字。假设您有一个已分配给 tempdb 的 100 GB 驱动器(或 100 GB 的某个共享驱动器)。您的实例有 4 个 tempdb 文件,您决定将它们最初设置为 100 MB,然后一次增长 10 MB。最初,该 100 GB 驱动器或切片如下所示(显然不是按比例缩放):

    在此处输入图像描述

    当您的系统使用 tempdb 资源时,每个 tempdb 文件将增长 10 MB 到 10 MB。经过几次成长:

    在此处输入图像描述

    请注意,每个增长事件虽然可能很快,但会强制所有连接等待。这在未启用即时文件初始化时更为明显,并且如果文件配置为一起增长(在某些版本中需要跟踪标志,但这是正确的做法,因为您不希望任何单个文件比其他人大)。

    当您到达驱动器的尽头时,所有 4 个文件将无法同时增长。这是一个业务连续性事件。当 tempdb 无法在此处增长时,活动将停止:

    在此处输入图像描述

    现在,如果您已经走到了这一步,您需要承认您需要更改使用 tempdb 的方式,或者 100 GB 是不够的,您需要分配更多空间。但我认为最好从这里开始并为您的 tempdb 初始数据文件大小配置此大小:

    在此处输入图像描述

    好吧,从技术上讲,我会将它们的大小设置为每个 20 GB,自动增长 500 MB。这使您仍然可以在填充 100GB 切片之前得到很好的警告,但同时无需为所有这些增量文件增长付费。

    毕竟,如果 tempdb 将增长以填充该空间,那么您就不能将它用于其他任何事情。

    我应该给自动增长哪个尺寸

    没有神奇的数字(传统上默认值对于实际使用来说过于保守,但现在越来越好)。您的自动增长设置将基于磁盘的性能特征以及您期望增长的频率。如果您有 SSD 或类似设备,并启用了 IFI,则大小可能与您在到达切片末尾之前想要发出的警告量更相关。如果您有旋转驱动器、机械驱动器和/或未启用 IFI,您可能需要测试各种设置并查看以不同数量增长文件所需的时间满足您对系统上所有事务的容忍度等待。

    • 11
  2. paparazzo
    2018-01-26T11:59:27+08:002018-01-26T11:59:27+08:00

    您不应始终将自动增长设置为无限制。如果出现问题,您不想填满磁盘。而且您需要提醒您某些事情没有按您的预期进行。如果事情按预期进行,请选择一个您认为不需要的大数字。

    创造和成长需要时间。如果您从 20GB 开始,与从 10GB 开始并增加 10GB 一次相比,总时间会减少。

    选择一个适合您正常需求的起始号码。您可以从小处着手,看看它在正常操作中快速增长到多大。

    10GB 的固定数量需要 9 次增长才能达到 100GB。如果你加倍(100%)将是 4 次增长达到 160GB。我通常选择 10-40%。

    当你成长时你会得到一些碎片,但这并不是一个很大的因素,除非你成长很多(比如 20+)。

    如果您有更多物理驱动器,则通常最好将其放在另一个驱动器上以平衡流量。TempDB 几乎不需要冗余。

    • -4

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve