Получить статистическую информацию о таблице и ее индексах (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();