Получить статистическую информацию о таблице и ее индексах (statistics_info)
Назначение
Метод statistics_info
предоставляет количественные данные и позволяет получить информацию, которая может быть использована для получения статистики о таблице и ее индексах.
Пакет
Package Linter::db
Прототип
$sth = $dbh- >statistics_info($catalog, $schema, $table, $unique_only, $quick);
Параметр | Описание | |
---|---|---|
$catalog
| См. метод table_info (параметр не принимает шаблон для поиска) | |
$schema
| См. метод table_info (параметр не принимает шаблон для поиска) | |
$table
| См. метод table_info (параметр не принимает шаблон для поиска) | |
$unique_only
| Задает вид предоставляемой информации об индексах:
| |
$quick
| Параметр игнорируется |
Возвращаемые значения
Переменная | Описание | |
---|---|---|
$sth | Объект Statement Handle |
Метаданные индекса – массив значений следующих атрибутов индекса:
Имя элемента | Значение | |
---|---|---|
TABLE_CAT
| Пустая строка | |
TABLE_SCHEM
| Имя схемы таблицы (символьное значение в кодировке ANSI длиной до 66 символов) | |
TABLE_NAME
| Имя таблицы | |
NON_UNIQUE
| Признак уникальности значений столбца:
| |
INDEX_QUALIFIER
| Пустая строка | |
INDEX_NAME
| Имя индекса | |
TYPE
| Значение 3 (соответствует идентификатору SQL_INDEX_OTHER по спецификации ODBC) | |
ORDINAL_POSITION
| Порядковый номер данного индексированного столбца (отсчет начинается с 1 )
| |
COLUMN_NAME
| Имя столбца | |
ASC_OR_DESC
| Значение «A» – сортировка по возрастанию, пустая строка – сортировка индексов не поддерживается | |
CARDINALITY
| Значение undef | |
PAGES
| Значение undef | |
FILTER_CONDITION
| Значение undef |
Пример
my $drh = DBI- >install_driver('Linter'); my $dbh = $drh- >connect("", "SYSTEM", "MANAGER8") or die "Could not connect to database: " . DBI- >errstr; $dbh- >do("create table TEST_TABLE(int_column int, char_column char(16));"); $dbh- >do("create index ndx_test_table on TEST_TABLE(int_column);"); my $sth = $dbh- >statistics_info('', 'TEST_TABLE', '', undef, undef); while (my $data_ref = $sth- >fetchrow_hashref()) { print($data_ref- >{TABLE_CAT} . "\n"); print($data_ref- >{TABLE_SCHEM} . "\n"); print($data_ref- >{TABLE_NAME} . "\n"); print($data_ref- >{NON_UNIQUE} . "\n"); print($data_ref- >{INDEX_QUALIFIER} . "\n"); print($data_ref- >{INDEX_NAME} . "\n"); print($data_ref- >{TYPE} . "\n"); print($data_ref- >{ORDINAL_POSITION} . "\n"); print($data_ref- >{COLUMN_NAME} . "\n"); print($data_ref- >{ASC_OR_DESC} . "\n"); print($data_ref- >{CARDINALITY} . "\n"); print($data_ref- >{PAGES} . "\n"); print($data_ref- >{FILTER_CONDITION} . "\n"); } $dbh- >do("drop table TEST_TABLE;"); $sth- >finish(); $dbh- >disconnect();