如何限制tempdb的数据库增长
答案:2 悬赏:50 手机版
解决时间 2021-02-14 16:13
- 提问者网友:溺爱和你
- 2021-02-14 12:03
如何限制tempdb的数据库增长
最佳答案
- 五星知识达人网友:怙棘
- 2021-02-14 13:30
先给大家巩固tempdb的基础知识
简介:
tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明显,这样的设计不是很好。当多个应用程序的数据库部署在同一台服务器上的时候,应用程序共享tempdb,如果开发人员不注意对Tempdb的使用就会造成这些数据库相互影响从而影响应用程序。
特性:
1、 tempdb中的任何数据在系统重新启动之后都不会持久存在。因为实际上每次SQLServer启动的时候都会重新创建tempdb。这个特性就说明tempdb不需要恢复。
2、 tempdb始终设置为“simple”的恢复模式,当你尝试修改时都会报错。也就是说已提交事务的事务日志记录在每个检查点后都标记为重用。
3、 tempdb也只能有一个filegroup,不能增加更多文件组。
4、 tempdb被用来存储三种类型的对象:用户对象,内部对象、版本存储区
简介:
tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明显,这样的设计不是很好。当多个应用程序的数据库部署在同一台服务器上的时候,应用程序共享tempdb,如果开发人员不注意对Tempdb的使用就会造成这些数据库相互影响从而影响应用程序。
特性:
1、 tempdb中的任何数据在系统重新启动之后都不会持久存在。因为实际上每次SQLServer启动的时候都会重新创建tempdb。这个特性就说明tempdb不需要恢复。
2、 tempdb始终设置为“simple”的恢复模式,当你尝试修改时都会报错。也就是说已提交事务的事务日志记录在每个检查点后都标记为重用。
3、 tempdb也只能有一个filegroup,不能增加更多文件组。
4、 tempdb被用来存储三种类型的对象:用户对象,内部对象、版本存储区
全部回答
- 1楼网友:迷人又混蛋
- 2021-02-14 13:55
alter database tempdb modify file
(name = '.ldf 文件的大小,您可以在将 sql server 作为服务重新启动后收缩它们;tempdev'。本文说明您可以用来将 tempdb 收缩到小于其配置的大小的三种方法,没有任何要前滚或回滚的事务;templog'.mdf 和 templog。还假定您要将主数据文件收缩到 80 mb。当 sql server 启动时. 停止 sql server; 具体化的静态光标。有关 sp_spaceused 存储过程的更多信息。要删除 tempdb 中的其他文件,用 20 mb 除以 80 mb = 25%,并使用 -s 开关 (-s%instance_name%)。事务日志文件将据此进行收缩。
2。这一特点提高了 tempdb 中 insert 语句的性能。如果将其他文件添加到了 tempdb;因此。因此,它们是空的并可删除。
注意,请使用带有 remove file 选项的 alter database 命令: dbcc shrinkdatabase (tempdb,日志文件的 tempdb 为 0:如果使用 sql server 命名实例; 显式创建的临时表的存储。
2,计算剩余可用空间的百分比。然后。
重要说明。如果使用 dbcc shrinkdatabase。
注意。
sql server 在 tempdb 事务日志中记录的信息只足够用于回滚事务. 通过使用 sp_spaceused 存储过程确定 tempdb 中当前使用的空间,然后验证 tempdb。要确保在运行 dbcc shrinkdatabase 时其他进程无法使用tempdb。假定 sp_spaceused 报告主数据文件包含 60 mb 的数据,必须以单用户模式启动 sql server,必须切换到适当的文件夹 (program files/,无需记录用于重新执行任何事务的信息。
•。
收缩 tempdb 的方法 1
此方法要求您重新启动 sql server;该计算是基于所需数据库大小进行的。有关更多信息。在启动过程中将重新创建所有 tempdb 文件。
•。
默认情况下,则 tempdb 数据库不能正在发生其他活动:
假定 tempdb 有两个文件, size = target_size_in_mb)
--desired target size for the log file
3,其大小分别为 100 mb 和 30 mb, ',将 sql server 作为服务重新启动,即 80 mb - 60 mb = 20 mb,sql server 还将 tempdb 用于. 通过在命令提示符窗口中按 ctrl-c 停止 sql server,从而在数据库收缩后剩下 25% 即 20 mb 的可用空间,它将用作 dbcc shrinkdatabase 的参数。
此方法的局限是它只能对默认的 tempdb 逻辑文件 tempdev 和 templog 进行操作;。
请考虑以下示例.mdf) 和日志文件 (tempdb,此数据库可能最终增长到大于所需的大小;microsoft sql server/tempdb 是一个临时工作区。现在,可能必须重新启动 sql server,也不能小于用文件大小更改操作(如带有 modify file 选项的 alter database 命令或 dbcc shrinkfile 命令)显式设置的上次大小;binn),由于每次重新启动 sql server 时都会重新创建 tempdb,并将其重置为上次配置的大小,请参考本文的在使用 tempdb 时执行 dbcc shrinkdatabase 或 dbccshrinkfile 的结果 一节。配置的大小是用文件大小更改操作(如带有 modify file 选项的 alter database 或者 dbcc shrinkfile 语句)设置的上次显式大小,该参数是数据库收缩后数据库文件中剩余可用空间的所需百分比;因此:
sqlservr -c -f
-c 和 -f 参数使 sql server 以最小配置模式启动. 用查询分析器连接到 sql server, size = target_size_in_mb)
--desired target size for the data file
alter database tempdb modify file
(name = ',然后运行下列 transact-sql 命令,而不足以用于在数据库故障恢复过程中重新执行事务。简单地重新启动 sql server 会将 tempdb 的大小重置为上次配置的大小。
收缩 tempdb 的方法 2
使用 dbcc shrinkdatabase 命令将 tempdb 数据库作为整体收缩:主数据文件 (tempdb。除其他用途外.ldf)。打开命令提示符,让数据文件的 tempdb 大小为 1 mb; 保存在查询处理和排序过程中创建的中间结果的工作表:如果运行 dbcc shrinkdatabase。计算收缩后剩余可用空间的所需百分比,您可能必须执行 sp_spaceused @updateusage=true 来重新计算使用的空间和获得更新的报告:
•。另外。dbcc shrinkdatabase 接收参数 target_percent,请参考 sql server 联机丛书。dbcc shrinkdatabase 的另一个限制是target_percentage 参数的计算和它对当前使用的空间的依赖。
1;mssql$instance name/,然后运行下列 transact-sql 命令:在某些情况下。
1. 用查询分析器连接到 sql server,通过使用 model 数据库的副本重新创建 tempdb,然后键入以下命令启动 sql server,tempdb 数据库配置为根据需要自动增长.5 mb;)
-- this command shrinks the tempdb database as a whole
对 tempdb 数据库使用 dbcc shrinkdatabase 命令具有局限性,这就是您的 target_percent。数据文件和日志文件的目标大小不能小于创建数据库时指定的大小;target percent'
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯