Запрос для проверки индекса на таблице

Я использовал оба и предпочитаю NAnt . Мне действительно трудно сказать, что одно "лучше", чем другое.

37
задан Brian Tompsett - 汤莱恩 19 January 2017 в 11:12
поделиться

4 ответа

Если вы используете MySQL, вы можете запустить SHOW KEYS FROM table или SHOW INDEXES FROM table

17
ответ дан 27 November 2019 в 04:09
поделиться

On SQL Server, this will list all the indexes for a specified table:

select * from sys.indexes
where object_id = (select object_id from sys.objects where name = 'MYTABLE')

This query will list all tables without an index:

SELECT name
FROM sys.tables 
WHERE OBJECTPROPERTY(object_id,'IsIndexed') = 0

And this is an interesting MSDN FAQ on a related subject:
Querying the SQL Server System Catalog FAQ

74
ответ дан 27 November 2019 в 04:09
поделиться

Большинство современных СУБД поддерживают схему INFORMATION_SCHEMA . Если ваш поддерживает это, вам нужно либо INFORMATION_SCHEMA.TABLE_CONSTRAINTS , либо INFORMATION_SCHEMA.KEY_COLUMN_USAGE , или, может быть, оба варианта.

Чтобы проверить, поддерживает ли ваша система, достаточно просто запустить

выберите count (*) из INFORMATION_SCHEMA.TABLE_CONSTRAINTS

РЕДАКТИРОВАТЬ: SQL Server действительно имеет INFORMATION_SCHEMA , и его проще использовать, чем их таблицы, зависящие от поставщика, так что просто используйте его.

7
ответ дан 27 November 2019 в 04:09
поделиться

В Oracle:

  • Определить все индексы в таблице:

     SELECT index_name 
     ОТ user_indexes
     ГДЕ table_name =: таблица
    
  • Определение индексов столбцов и столбцов по индексу:

     ВЫБРАТЬ имя_индекса
     , column_position
     , имя_столбца
     ОТ user_ind_columns
     ГДЕ table_name =: таблица
     ORDER BY index_name, column_order
    

Ссылки:

3
ответ дан 27 November 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: