文章
· 八月 31, 2022 阅读大约需 4 分钟

第十八章 维护本地数据库(三)

第十八章 维护本地数据库(三)

截断数据库

截断数据库会将数据库末尾的可用空间返回到底层文件系统。数据库在压缩后通常会被截断,这会将可用空间移动到数据库的末尾。

截断数据库时,指定数据库的目标大小。如果在数据库末尾有足够的可用空间,则该操作会删除足够的空间以将数据库减小到目标大小;如果没有,它会删除所有可以删除的内容。 (要了解数据库的可用空间到底有多少,请压缩数据库;无需完成显示当前总可用空间和末尾数量的操作。)

注意:此功能不适用于具有原始卷的数据库。

  1. 导航到数据库页面(系统操作 > 数据库)。
  2. 单击要截断的数据库的名称。这会将带到其数据库详细信息页面。
  3. 单击页面顶部功能区上的截断。这将显示“截断数据库”对话框,其中显示所选数据库的名称、位置和当前大小(以兆字节 (MB) 为单位)。
  4. 输入目标文件大小 (MB),它必须小于当前大小,然后单击确定。输入 0 从文件末尾删除所有可能的可用空间。

注意:用于截断目的的可用空间不同于用于存储数据的可用空间。如果某些控制结构不用于数据存储,则可以在截断期间删除它们。这可能会导致报告的可用空间有所不同。

对数据库进行碎片整理

对数据库进行碎片整理会重新排列数据库中的全局块,以使包含给定全局数据的所有块都按连续顺序排列。该操作不会按顺序放置全局中的大字符串块或指针块,但它确实将它们定位在连续区域中。作为该过程的一部分,对数据库进行碎片整理选项以与在数据库中压缩全局选项相同的方式压缩所有全局变量,但目标密度为 70%。 (如果这低于数据库当前的全局块密度,则数据库的大小不会增加。)

注意:不能对 IRSTEMP 数据库进行碎片整理。

一般来说,没有必要定期运行碎片整理。然而,一些工作负载,特别是那些按顺序读取大部分数据库的工作负载,可以从按顺序组织全局块中受益。

碎片整理过程在数据库末尾需要一定量的可用空间。因此,存在以下可能性:

  • 如果最后有足够的可用空间来执行该操作,则除了全局碎片整理之外,它无需对数据库进行任何更改即可完成。
  • 如果数据库中没有足够的可用空间,则根据需要扩展数据库。碎片整理完成后,可以截断数据库以删除添加的可用空间。
  • 如果数据库中没有足够的可用空间,但有大量可用空间可以移到最后,会收到通知。在这种情况下,在选择对数据库进行碎片整理选项之前压缩数据库可减少完成碎片整理操作所需的扩展量。

要对数据库中的全局变量进行碎片整理,请使用以下过程:

  1. 导航到数据库页面(系统操作 > 数据库)。
  2. 单击要进行碎片整理的数据库的名称。这会将带到其数据库详细信息页面。

  3. 单击页面顶部功能区上的碎片整理。这将显示“碎片整理数据库”对话框,其中显示了所选数据库的名称、位置和当前大小(以兆字节 (MB) 为单位),以及描述碎片整理所需的可用空间的消息。

  4. 单击确定。

  5. 任务完成后,会出现一个后台任务信息对话框。或者,也可以在后台任务页面(系统操作 > 后台任务)查看任务。

  6. 单击关闭以重新显示数据库详细信息页面。该页面应自动刷新以显示新的数据库信息。

重要说明:碎片整理操作会临时重新定位数据库中的所有数据,而不管运行该操作之前数据库中的全局碎片程度如何。该操作的后续运行会消耗类似数量的资源,但不会提供任何额外的好处。

注意:碎片整理操作旨在与正常的数据库活动同时运行。但是,该操作确实会消耗一些系统资源,并且如果系统处于极高负载下,则可能无法完成。由于这些原因, 建议在非高峰时间运行此和其他数据库重组操作(包括压缩数据库和压缩全局),并且一次仅在系统上运行一个此类操作。

全局碎片整理可能涉及临时增加正在压缩的数据库大小。如果这导致数据库达到其配置的最大大小,或者由于存储卷上的可用空间不足而无法进行扩展,则取消操作。

讨论 (0)1
登录或注册以继续