| Termin | Definicja |
|---|---|
| Tabela systemowa | Tabela systemowa przechowuje metadane i konfigurację samego silnika bazodanowego. Katalog systemowy jako baza o bazieSilnik bazodanowy przechowuje opis własnych obiektów w tych samych strukturach, których używa do danych użytkownika — tyle że zapisanych i chronionych przez sam serwer. W SQL Server dostęp odbywa się przez widoki katalogowe w schemacie sys: sys.objects, sys.tables, sys.columns, sys.indexes, sys.databases, sys.sql_logins. Fizyczne tabele bazowe (sys.sysschobjs i pokrewne) są niewidoczne dla zwykłego połączenia — pokazuje je dopiero sesja DAC (dedicated administrator connection). PostgreSQL trzyma odpowiedniki w schemacie pg_catalog: pg_class, pg_attribute, pg_namespace. MySQL i MariaDB dzielą to na bazę mysql (konta, uprawnienia) oraz wirtualny information_schema. Widoki katalogowe kontra standard INFORMATION_SCHEMAINFORMATION_SCHEMA jest przenośny między silnikami, ale opisuje tylko to, co przewiduje standard SQL. Nie znajdzie się tam informacji o kompresji stron, partycjonowaniu, statystykach czy filtrowanych indeksach — te wymagają widoków producenta. Praktyczna zasada przy pisaniu skryptów administracyjnych: INFORMATION_SCHEMA.COLUMNS wystarczy do sprawdzenia typów kolumn przed migracją, ale audyt indeksów trzeba oprzeć na sys.indexes połączonym z sys.index_columns. Do tego dochodzą dynamiczne widoki zarządcze (sys.dm_exec_requests, sys.dm_os_wait_stats), które nie są tabelami — dane powstają w pamięci przy każdym odczycie i zerują się po restarcie usługi. Czego nie wolno robić z metadanymiBezpośrednia modyfikacja tabel systemowych jest od dawna zablokowana, a próby obejścia kończą się bazą w stanie SUSPECT. Realne kłopoty w małych firmach wyglądają inaczej: baza msdb puchnie do kilkunastu gigabajtów, bo historia zadań i kopii (backupset, backupmediafamily, sysjobhistory) nigdy nie była czyszczona procedurą sp_delete_backuphistory. Innym częstym objawem jest błąd 824 lub 823 przy odczycie strony katalogu — wtedy DBCC CHECKDB pokazuje uszkodzenia w obiektach o niskich identyfikatorach, co niemal zawsze oznacza problem z nośnikiem, nie z aplikacją. Diagnostyka baz Subiekta i Comarcha w naszej pracowniProgramy handlowe oparte o SQL Server zwykle nie mają narzędzi do zaglądania w katalog systemowy, więc gdy aplikacja zgłasza brak obiektu albo odmowę dostępu, odpowiedź znajduje się w sys.objects i sys.database_permissions. Sprawdzamy zgodność poziomu zgodności bazy z wersją instancji, kompletność schematu po nieudanej aktualizacji i uprawnienia konta, na którym pracuje usługa. Serwery i stacje z bazami odbieramy własnym transportem, bez pośrednictwa firm kurierskich, żeby dysk z bazą nie krążył po sortowniach. |