Rozmiary baz danych w DB2

najprostszym sposobem aby wyświetlić rozmiar bazy danych jest sprawdzenie jakiej wielkości są foldery zawierające pliki bay danych (np /db2data/db2inst1/NODE0000).

[/db2data/db2inst1/NODE0000] $ du -sk *

759837840       BAZA1       -> czyli około 760 GB
1835144         BAZA2       -> 1,8 GB
22904956        BAZA3       -> 23 GB
83236           SQL00001
4028            SQL00002
3312            SQL00003
24              sqldbdir

Innym sposobem jest uruchomienie procedury GET_DBSIZE_INFO (po wcześniejszym podłączeniu się do naszej bazy)

db2 => CALL GET_DBSIZE_INFO(?, ?, ?, -1)

  Value of output parameters
  --------------------------
  Parameter Name  : SNAPSHOTTIMESTAMP
  Parameter Value : 2017-09-21-11.55.31.074612

  Parameter Name  : DATABASESIZE
  Parameter Value : 777776005120

  Parameter Name  : DATABASECAPACITY
  Parameter Value : 1040174993408

  Return Status = 0

Jeszcze innym sposobem jest wydanie zapytania

db2 => select db_size/1024/1024 as DB_SIZE,SNAPSHOT_TIMESTAMP,DB_CAPACITY/1024/1024 as CAPACITY from systools.stmg_dbsize_info

DB_SIZE              SNAPSHOT_TIMESTAMP         CAPACITY
-------------------- -------------------------- --------------------
              741745 2017-09-21-11.55.31.074612               991988

  1 record(s) selected.

Prostą metodą jest też obliczenie na podstawie zajętości przestrzeni tabel dla danej bazy

db2 => get connection state

   Database Connection State

 Connection state       = Connectable and Connected
 Connection mode        = SHARE
 Local database alias   = BAZA1
 Database name          = BAZA1
 Hostname               =
 Service name           = 

Sprawdzamy tablespace dla naszej bazy BAZA1
db2 => list tablespaces show detail

...
Tablespace ID                        = 2
 Name                                 = USERSPACE1
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 707584
 Useable pages                        = 707552
 Used pages                           = 707008
 Free pages                           = 544
 High water mark (pages)              = 707008
 Page size (bytes)                    = 32768
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1
 Minimum recovery time                = 2015-06-29-14.05.36.000000
... 

Tablespace USERS1 gdzie znajduje się większość tabel zajmuje 707.584 pages. Poniżej odczytujemy jaka jest wielkość strony (Page size (bytes) = 32768) czyli 707.584 * 32kB daje nam 22 642 688 KB czyli około 23 GB 🙂

Ten wpis został opublikowany w kategorii DB2 i oznaczony tagami . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz