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 / 问题 / 11312
Accepted
Jango
Jango
Asked: 2010-08-24 10:25:42 +0800 CST2010-08-24 10:25:42 +0800 CST 2010-08-24 10:25:42 +0800 CST

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

  • 772
DBCC ShrinkDatabase()
DBCC ShrinkFile()
  1. 我是否需要同时运行两个 DBCC 命令才能缩小数据库?
  2. 上面这两个有什么区别?
sql-server sql-server-2005
  • 3 3 个回答
  • 68106 Views

3 个回答

  • Voted
  1. Best Answer
    gbn
    2010-08-24T10:29:23+08:002010-08-24T10:29:23+08:00

    简单地...

    • DBCC ShrinkDatabase(): 收缩所有文件
    • DBCC ShrinkFile(): 只有一个文件

    例如,您可能有一个日志备份问题,并且已经失控,因此您运行DBCC ShrinkFile().

    你几乎从不使用ShrinkDatabase.

    在您考虑使用任一命令之前,请阅读Paul Randal 的关于收缩的博客。

    除非有明确的原因,否则我不会缩小任何一个文件(mdf、ldf)。这些文件的大小是它们需要的大小。任何建议将其作为定期维护的一部分的博客都可能不了解 SQL Server 的工作原理。

    • 41
  2. Raj More
    2010-08-24T10:36:12+08:002010-08-24T10:36:12+08:00

    默认数据库有两个文件

    MyDb.MDF 和 MyDb.LDF

    MDF 文件是主分区所在的数据文件。根据您的需要,您可以将数据库划分为多个文件。这样做是为了使数据(单个或多个表)可以跨越多个文件,这些文件通常放在单独的硬盘驱动器上以实现更高的性能。

    如果收缩数据库,则与该数据库关联的所有文件都将收缩。

    如果你收缩一个文件,那么只有选择的文件会被收缩。

    您只需要使用 Shrink Database 命令。但这样做通常不是一个好的做法,也不是推荐的做法。

    如果您告诉我们您遇到的问题是什么,我们可以为您提供有关如何解决问题的更多信息。

    • 3
  3. Gigs
    2010-08-24T11:40:09+08:002010-08-24T11:40:09+08:00

    我们很可能只使用 dbcc shrinkfile 。sp_helpdb 'databasename' 提供数据库中数据和日志文件的列表。

    右键单击 mnagement studio,tasks->shrink->file 提供可以缩小的百分比。

    无论我们缩小什么,它都可以作为可用空间回到磁盘上。

    例如:使用 'databasename' dbcc shrinkfile(fileid,100)

    这里 100 是 100 MB

    fileid 可以从 sp_helpdb 'databasename' 获取

    • 0

相关问题

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

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

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

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

  • 从 SQL Server 2008 降级到 2005

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