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 / 问题 / 11330
Accepted
Tom DeMille
Tom DeMille
Asked: 2010-04-24 08:19:19 +0800 CST2010-04-24 08:19:19 +0800 CST 2010-04-24 08:19:19 +0800 CST

我应该定期缩小我的数据库或至少我的日志文件吗?

  • 772

我的问题是,我应该定期运行一个或两个收缩命令,

DBCC 收缩数据库

或者

DBCC 收缩文件

==============================

背景

Sql Server:数据库为 200 gigs,日志为 150 gigs。

运行这个命令

SELECT name ,size/128.0 - 
CAST(FILEPROPERTY(name, 'SpaceUsed') AS int) / 128.0 
AS AvailableSpaceInMB FROM sys.database_files;`

产生这个输出..

MyDB:159.812500 MB 免费

MyDB_Log:149476.390625 MB 可用

所以似乎有一些可用空间。

我们的备份计划如下:

  1. 事务日志 每小时一次
  2. 每周两次完整备份
  3. 每周 5 次差异备份
sql-server maintenance
  • 3 3 个回答
  • 4381 Views

3 个回答

  • Voted
  1. Best Answer
    AdaTheDev
    2010-04-24T08:46:06+08:002010-04-24T08:46:06+08:00

    我强烈建议您阅读Paul Randal关于为什么不应该缩小数据文件(日志文件是,数据文件不)的文章。

    我不会引用或试图总结这篇文章,因为我真的不公平!只是我认为你至少应该知道的事情。

    • 5
  2. SqlRyan
    2010-04-24T08:24:09+08:002010-04-24T08:24:09+08:00

    缩小文件的唯一优势是回收磁盘空间,但需要注意的是 -如果您的数据库只是要增长以再次填充该空间,那么从长远来看,缩小它实际上可能是有害的。这是因为,在缩减之后,SQL Server 将不得不随着磁盘空间的增长而回收磁盘空间(这需要时间,虽然不多),并且可能会导致物理磁盘上的碎片(更多的问题)。

    如果文件变得比平时大得多,并且您想要恢复硬盘空间,那么请进行缩小。如果您只是想知道收缩是否应该成为您定期维护的一部分,那么它不应该。

    • 4
  3. Mark Brackett
    2010-04-24T08:36:00+08:002010-04-24T08:36:00+08:00

    正如rwmnau 所说,aSHRINK不是正常的维护 - 所以你不应该经常这样做。但是,鉴于您每小时备份一次日志并且有大约 150GB 的可用空间 - 我很想猜测您永远不会填写该日志。

    我可能会把SHRINK它调整到一个合理的大小,让它自动生长,直到你找到平衡为止。您不希望它在正常使用时自动增长,但我个人也不希望我的日志文件 99% 为空。

    要估计一个合理的起点,您可以估计一小时内的最大更改数(您的备份日志计划),或者在日志备份几个代表性周期之前检查已使用的大小。

    • 1

相关问题

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

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

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

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

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

Sidebar

Stats

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

    如何在转储中使用使用数据库执行 mysqldump

    • 4 个回答
  • Marko Smith

    在 MySQL Workbench 中,在表的“顶部”插入一个新列?

    • 4 个回答
  • Marko Smith

    SQL Server - 临时表与物理表

    • 3 个回答
  • Marko Smith

    什么时候全表扫描比索引扫描更好?

    • 4 个回答
  • Marko Smith

    收缩数据库和文件有什么区别?

    • 3 个回答
  • Marko Smith

    Sql FILESTREAM 垃圾回收问题

    • 1 个回答
  • Marko Smith

    SQL Server 2008 DBCC 问题

    • 2 个回答
  • Marko Smith

    如何在恢复中停止、脱机和删除 SQL Server 数据库?

    • 2 个回答
  • Marko Smith

    如何将 SQL Server 2000 数据库恢复到 SQL Server 2008 实例?

    • 5 个回答
  • Marko Smith

    在 T-SQL 中使用 CAST 会影响性能

    • 3 个回答
  • Martin Hope
    user481826 如何在转储中使用使用数据库执行 mysqldump 2010-10-29 16:08:59 +0800 CST
  • Martin Hope
    Will A SQL Server - 临时表与物理表 2010-07-05 08:46:10 +0800 CST
  • Martin Hope
    NibblyPig SQL 2008 中的表分区 - 为什么? 2010-06-30 00:59:23 +0800 CST
  • Martin Hope
    Gnomo 解释执行计划 2010-09-10 10:31:11 +0800 CST
  • Martin Hope
    ahsan 什么时候全表扫描比索引扫描更好? 2010-12-10 10:16:54 +0800 CST
  • Martin Hope
    Tom DeMille 我应该定期缩小我的数据库或至少我的日志文件吗? 2010-04-24 08:19:19 +0800 CST
  • Martin Hope
    Jango 收缩数据库和文件有什么区别? 2010-08-24 10:25:42 +0800 CST
  • Martin Hope
    CrapHands 如何在恢复中停止、脱机和删除 SQL Server 数据库? 2010-12-18 07:12:36 +0800 CST
  • Martin Hope
    Ryan Delucchi 在 T-SQL 中使用 CAST 会影响性能 2010-07-02 15:11:16 +0800 CST
  • Martin Hope
    Manjot SQL 2005:我们能否确定重建索引维护作业可以使数据库日志文件增长多少? 2010-08-12 18:40:44 +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