1_sp_server_info.sql: Adatbázis szerver tulajdonságok lekérdezése
Az adatbázis szerver tulajdonságait az sp_server_info tárolt eljárással tudjuk lekérdezni. Az eljárás egy három oszlopból álló eredménytáblát ad vissza, amelyben minden rekord egy-egy tulajdonságot tartalmaz. A tulajdonságokat egy kódszámmal tudjuk azonosítani, adott esetben megkeresni. Az eljárás szintaxisa a következő:
sp_server_info [[@attribute_id =] 'attribute_id']
Az eljárásnak csak egyetlen paramétere van, az attribute_id. Ebben a paraméterben adhatjuk meg a lekérdezendő tulajdonság kódját. Ha elhagyjuk a paramétert, akkor az összes tulajdonság lekérdezésre kerül.
Az eljárás által visszaadott eredménytáblában az alábbi oszlopok szerepelnek:
| Oszlop neve |
Adattípus |
Leírás |
| ATTRIBUTE_ID |
int |
A tulajdonság egyedi azonosító száma (kódszáma). |
| ATTRIBUTE_NAME |
varchar(60) |
A tulajdonság neve. |
| ATTRIBUTE_VALUE |
varchar(255) |
A tulajdonság aktuális értéke. |
Az alábbi táblázatban a lehetséges tulajdonságok, és azok adatai szerepelnek:
| ATTRIBUTE_ID |
ATTRIBUTE_NAME |
Lehetséges érték |
Leírás |
| 1 |
DBMS_NAME |
Microsoft SQL Server |
| 2 |
DBMS_VER |
Microsoft SQL Server 2000 - 8.00.xxx (Intel X86) May 31 2000 00:54:06 Copyright (c) 1988-2000 Microsoft Corporation |
| 10 |
OWNER_TERM |
owner |
| 11 |
TABLE_TERM |
table |
| 12 |
MAX_OWNER_NAME_LENGTH |
128 |
Tulajdonos nevének maximális hossza. |
| 13 |
TABLE_LENGTH |
128 |
Tábla nevének maximális hossza. |
| 14 |
MAX_QUAL_LENGTH |
128 |
A maximum hossza a tábla qualifier-nek (a három részes táblanév hivatkozás első része). |
| 15 |
COLUMN_LENGTH |
128 |
Az oszlopok nevének maximális hossza. |
| 16 |
IDENTIFIER_CASE |
SENSITIVE |
Megadja a felhasználó által az adatbázisban létrehozható neveket (tábla, oszlop, tárolt eljárás). |
| 17 |
TX_ISOLATION |
2 |
A tranzakció izolációs szint kezdeti értéke. |
| 18 |
COLLATION_SEQ |
charset=iso_1 sort_order=dictionary_iso charset_num=1 sort_order_num=51 |
Meghatározza a karakterkészletek sorrendjét. |
| 19 |
SAVEPOINT_SUPPORT |
Y |
Megadja, hogy a DBMS támogatja-e a névvel azonosítható mentési pontokat. |
| 20 |
MULTI_RESULT_SETS |
Y |
Megadja, hogy támogatja-e a több lekérdezés eredményét tartalmazó eredménylistákat. |
| 22 |
ACCESSIBLE_TABLES |
Y |
Megadja, hogy az sp_tables eljárásban csak azok a táblák jelenjenek-e meg, amelyekhez az aktuális felhasználónak legalább SELECT hozzáférési joga van. |
| 100 |
USERID_LENGTH |
128 |
Meghatározza a felhasználói nevek maximális hosszát. |
| 101 |
QUALIFIER_TERM |
database |
Meghatározza a háromtagú név-hivatkozások első elemének típusát. |
| 102 |
NAMED_TRANSACTIONS |
Y |
Megadja, hogy a DBMS támogatja-e a tranzakciók elnevezését. |
| 103 |
SPROC_AS_LANGUAGE |
Y |
Megadja, hogy a tárolt eljárások futtathatók-e eseményként. |
| 104 |
ACCESSIBLE_SPROC |
Y |
Megadja, hogy az sp_stored_procedures eljárás csak azokat a tárolt eljárásokat listázza-e, amelyek futtatásához az aktuális felhasználónak is van joga. |
| 105 |
MAX_INDEX_COLS |
16 |
A DBMS által egy indexben használható mezők maximális számát határozza meg. |
| 106 |
RENAME_TABLE |
Y |
Megadja, hogy a táblák átnevezhetők-e. |
| 107 |
RENAME_COLUMN |
Y |
Megadja, hogy az oszlopok átnevezhetők-e. |
| 108 |
DROP_COLUMN |
Y, ha az SQL Server 2000 fut, és N, ha korábbi verzió. |
Megadja, hogy a mezők törölhetők-e. |
| 109 |
INCREASE_COLUMN_LENGTH |
Y, ha az SQL Server 2000 fut, és N, ha korábbi verzió. |
Megadja, hogy a mezők mérete megnövelhető-e. |
| 110 |
DDL_IN_TRANSACTION |
Y, ha az SQL Server version 6.5 vagy ennél későbbi verzió fut, és N, ha ennél korábbi. |
Megadja, hogy a DLL utasítások megjelennek-e a tranzakciókban. |
| 111 |
DESCENDING_INDEXES |
Y, ha az SQL Server 2000 fut, és N, ha korábbi verzió. |
Megadja, hogy a csökkenő indexek támogatottak-e. |
| 112 |
SP_RENAME |
Y |
Megadja, hogy a tárolt eljárások átnevezhetők-e. |
| 113 |
REMOTE_SPROC |
Y |
Megadja, hogy a tárolt eljárások futtathatnak-e távoli tárolt eljárásokat a |
| DB-Library-ban. |
| 500 |
SYS_SPROC_VERSION |
Aktuális verzió |
Megadja a rendszer tárolt eljárások verziószámát. |
2_sp_statistics.sql: Indexek tulajdonságainak lekérdezése
Az sp_statistics tárolt eljárással egy lépésben kérdezhetjük le az indexekkel kapcsolatos információkat. Az eljárás szintaxisa a következőképpen néz ki:

sp_statistics [@table_name =] 'table_name'
[,[@table_owner =] 'owner']
[,[@table_qualifier =] 'qualifier']
[,[@index_name =] 'index_name']
[,[@is_unique =] 'is_unique']
[,[@accuracy =] 'accuracy']
Az eljárás paraméterei:
table_name
Annak a táblának a nevét adhatjuk meg ebben a paraméterben, amelynek az indexeit le szeretnénk kérdezni. A tábla nevét egyértelműen és kötelezően meg kell adni.
table_owner
A tábla tulajdonosának neve. Nem kötelező.
table_qualifier
A táblát tartalmazó adatbázis nevét adhatjuk meg ebben a paraméterben. Nem kötelező.
index_name
A lekérdezendő index neve. Ha nem adjuk meg, akkor az összes indexet lekérdezi.
is_unique
Ha ennek a paraméternek az értéke „Y”, akkor csak azokat az indexeket kérdezi le, amelyek nem tartalmazhatnak az index-ben szereplő mezőkben azonos értékeket (egyedi, unique indexek). Az alapértelmezett értéke „N”.
accuracy
A statisztika pontosságát határozza meg ez az index. Az alapértelmezett értéke „Q”. Ha nagyobb pontosságra van szükség, akkor állítsuk a paraméter értékét „E”-re.
Az eljárás által visszaadott eredménytábla.
| Oszlop neve |
Adattípus |
Leírás |
| TABLE_QUALIFIER |
sysname |
A táblát tartalmazó adatbázis neve. |
| TABLE_OWNER |
sysname |
A tábla tulajdonosának neve. |
| TABLE_NAME |
sysname |
A tábla neve. |
| NON_UNIQUE |
smallint |
Értékei lehetnek: 0 = Unique (egyedi index) 1 = Not unique (nem egyedi index). |
| INDEX_QUALIFIER |
sysname |
Az index tulajdonosának neve. Több DBMS támogatja, hogy ne csak a tábla tulajdonosa, hanem más felhasználók is létrehozhassanak indexeket. |
| INDEX_NAME |
sysname |
Az index neve. |
| TYPE |
smallint |
Típus: 0 = tábla statisztika 1 = nyalábolt 2 = tördelt 3 = más. |
| SEQ_IN_INDEX |
smallint |
Az oszlop pozíciója az indexben. |
| COLUMN_NAME |
sysname |
Az oszlop neve. |
| COLLATION |
char(1) |
Értéke mindig „A”. |
| CARDINALITY |
int |
Rekordok száma a táblában, vagy az egyedi értékek száma az indexben. |
| PAGES |
int |
Az index vagy a tábla tárolására használt lapok száma. |
| FILTER_CONDITION |
varchar(128) |
Nincs érték. |