список таблиц без индексов в sql 2008

Откройте Терминал в соответствии с Приложениями> Аксессуары> Терминал и выполните следующие команды:

sudo apt-get install libdvdnav4 libdvdread4 gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly

sudo /usr/share/doc/libdvdread4/install-css.sh

Ссылка:

9
задан Nick Kavadias 3 September 2009 в 02:04
поделиться

3 ответа

Это должно охватывать то, что вы ищете. т.е. таблицы, которые представляют собой кучи (без кластеризованного индекса) и не имеют некластеризованных индексов. Он использует новый sys. объекты таблиц, использованные в 2005/2008.

Кроме того, вы, вероятно, захотите найти таблицы, которые имеют кластерный индекс, но не имеют некластеризованных индексов (это вторая часть утверждения, которую я оставил закомментированной.

SELECT 
     schemaname = OBJECT_SCHEMA_NAME(o.object_id)
    ,tablename = o.NAME
FROM sys.objects o
INNER JOIN sys.indexes i ON i.OBJECT_ID = o.OBJECT_ID
-- tables that are heaps without any nonclustered indexes
WHERE (
        o.type = 'U'
        AND o.OBJECT_ID NOT IN (
            SELECT OBJECT_ID
            FROM sys.indexes
            WHERE index_id > 0
            )
        )
        --    OR
        -- table that have a clustered index without any nonclustered indexes
        --(o.type='U' 
        --        AND o.OBJECT_ID NOT IN (
        --    SELECT OBJECT_ID 
        --        FROM sys.indexes 
        --        WHERE index_id>1))  
10
ответ дан 4 December 2019 в 08:33
поделиться
select shema = s.name, table_name = o.name
from sys.objects o 
join sys.schemas s on o.schema_id = s.schema_id
where type = 'U'
and not exists (select i.index_id 
                from sys.indexes i 
                where i.type <> 0 --ignore default heap index row
                and o.object_id = i.object_id )

Редактировать:
Я обновил SQL, чтобы включить в него имя схемы по запросу. (Обратите внимание, что мне пришлось использовать sys.objects вместо sysobjects для обслуживания схем, которые были введены в SQL 2005)

Таблицы каталога задокументированы в документации SQL Server, см. по этой ссылке.
Этот FAQ содержит больше примеров и также может быть полезен.

Обратите внимание, что это системные таблицы, которые могут меняться между версиями SQL-сервера, где возможно, лучше используйте системные представления, не зависящие от таблиц, называемые Представления информационной схемы .

4
ответ дан 4 December 2019 в 08:33
поделиться

Соглашение, которое мы используем там, где я работаю, довольно близко к A, за исключением того, что мы называем таблицы во множественном числе (то есть «сотрудники») и используем подчеркивание между именем таблицы и столбца. . Преимущество этого метода в том, что для ссылки на столбец это либо «employee _ id», либо «employee.id», в зависимости от того, как вы хотите получить к нему доступ. Если вам нужно указать, из какой таблицы берется столбец, "employee.employees _ id" определенно избыточно.

dm_db_missing_index_columns (index_handle) - возвращает информацию о столбцах таблицы базы данных, которые отсутствуют для индекса. Это функция, которая требует передачи index_handle.
4
ответ дан 4 December 2019 в 08:33
поделиться
Другие вопросы по тегам:

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