文章
· 九月 1, 2022 阅读大约需 5 分钟

第十九章 维护本地数据库(四)

第十九章 维护本地数据库(四)

压缩数据库中的全局变量

管理数据库空间的另一种方法是使用 ^DATABASE 例程压缩数据库中的全局变量。压缩全局变量将全局数据合并到更少的块中,从而增加数据库中的可用空间量。

在创建和更新全局变量时 IRIS 通常以将全局块填充到大约 70% 容量的方式分配数据。 (完全按整理顺序增长的全局可能会分配到接近 90%。)通常,允许 IRIS 自动管理全局块密度就足够了。然而,一些不连续的数据删除模式可能会显着降低平均全局块密度。

注意:要逐个全局地查看数据库中全局块的当前密度,可以运行完整性检查、并检查每个全局的数据级别输出。

压缩全局变量时,指定所需的全局块密度(默认为 90%),操作会尝试通过合并数据来尽可能接近此值——例如,将分布在三个块中的全局数据重新排列为两个。通常(但并非总是),压缩全局变量会显着增加数据库中可用的可用空间。 (如果指定的目标密度低于数据库当前的全局块密度,则数据库的大小不会增加。)

要压缩数据库中的全局变量,请使用以下过程:

  1. 打开终端并更改为 %SYS 命名空间。
  2. 输入 do ^DATABASE,然后从菜单中选择 7) Compact globals in a database
%SYS>do ^DATABASE


 1) Create a database
 2) Edit a database
 3) List databases
 4) Delete a database
 5) Mount a database
 6) Dismount a database
 7) Compact globals in a database
 8) Show free space for a database
 9) Show details for a database
10) Recreate a database
11) Manage database encryption
12) Return unused space for a database
13) Compact free space in a database
14) Defragment a database
15) Show background database tasks
  1. 指定要在其上运行操作的数据库的目录。可以通过输入来指定多个数据库?在数据库目录压缩?提示,然后输入数字列表。
Database directories to compact? ?

1) c:\intersystems\irishealth\mgr\
2) c:\intersystems\irishealth\mgr\hscustom\
3) c:\intersystems\irishealth\mgr\hslib\
4) c:\intersystems\irishealth\mgr\hssys\
5) c:\intersystems\irishealth\mgr\irisaudit\
6) c:\intersystems\irishealth\mgr\irislocaldata\
7) c:\intersystems\irishealth\mgr\iristemp\
8) c:\intersystems\irishealth\mgr\user\
     (Multiple selections allowed: * for all, or list such as 1,4,7-10)
  1. 指示您要压缩所有全局变量,或者输入要压缩的单个全局变量列表。
Database directories to compact? 8 c:\intersystems\irishealth\mgr\user\

Databases Selected
------------------
c:\intersystems\irishealth\mgr\user\
  1. 指定目标平均全局块密度,响应其余提示,并确认。
All Globals? Yes => yes

34 items selected from
34 available globals
How full do you want the database blocks? 90 => 50
Display compacted globals? No => n
Device: ""
Right margin: 80 => 50

Confirm compaction of databases? Yes => yes

               Database Compaction
               Aug 20 2022  5:49 PM

Database c:\intersystems\irishealth\mgr\user\
Global                   MB Processed   MB Compres
sed To
          Completed
------                   ------------   ----------
------
          ---------
^IRIS.Msg                           0
     0
            5:49 PM
^IRIS.MsgNames                      0
     0
            5:49 PM
^IRIS.SASchema                  0.008
 0.008
            5:49 PM
^ISC.Src.Jrn                    0.008
 0.008
            5:49 PM
^ISCMethodWhitelist             0.008
 0.008
            5:49 PM
^ROUTINE                        0.008
 0.008
            5:49 PM
^oddBIND                            0
     0
            5:49 PM
^oddCOM                         0.016
 0.016
            5:49 PM
^oddDEF                         0.016
 0.016
            5:49 PM
^oddDEP                         0.008
 0.008
            5:49 PM
^oddEXT                         0.008
 0.008
            5:49 PM
^oddEXTR                            0
     0
            5:49 PM
^oddMAP                             0
     0
            5:49 PM
^oddMETA                            0
     0
            5:49 PM
^oddPKG                             0
     0
            5:49 PM
^oddPROC                            0
     0
            5:49 PM
^oddPROJECT                     0.008
 0.008
            5:49 PM
^oddSQL                             0
     0
            5:49 PM
^oddStudioDocument                  0
     0
            5:49 PM
^oddStudioMenu                      0
     0
            5:49 PM
^oddTSQL                            0
     0
            5:49 PM
^oddXML                             0
     0
            5:49 PM
^rBACKUP                            0
     0
            5:49 PM
^rINC                               0
     0
            5:49 PM
^rINCSAVE                           0
     0
            5:49 PM
^rINDEX                         0.008
 0.008
            5:49 PM
^rINDEXCLASS                    0.008
 0.008
            5:49 PM
^rINDEXEXT                       0.10
  0.10
            5:49 PM
^rINDEXSQL                      0.008
 0.008
            5:49 PM
^rMAC                               0
     0
            5:49 PM
^rMACSAVE                           0
     0
            5:49 PM
^rMAP                           0.008
 0.008
            5:49 PM
^rOBJ                           0.008
 0.008
            5:49 PM
^rPYC                           0.008
 0.008
            5:49 PM

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

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

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