Мне было поручено просмотреть базу данных MSSQL, чтобы узнать, могу ли я повысить производительность где-либо. Большая часть БД имеет кластеризованные индексы, использующие стандартное поле первичного ключа идентификатора идентификатора.
В области, которая меня беспокоит, я обнаружил, что две таблицы не связаны стандартным первичным ключом -> отношение внешнего ключа. Вместо этого есть поле nvarchar (50), которое соответствует в обеих таблицах, поскольку их содержимое одинаково. Таким образом, внутреннее соединение может быть сделано без конкретных отношений. Здесь был создан некластеризованный индекс.
Я спросил, почему мы не делаем это так же, как и везде в БД, и объяснил, что я думаю, что это может быть в том случае, когда дела значительно замедляются. Мне сказали, что это не будет проблемой, потому что в рассматриваемом поле есть некластеризованный индекс. Так что я должен искать в другом месте.
Так что я подумал, что спросить, что думают люди. Будет ли некластеризованный индекс, настроенный для столбца nvarchar (50), который используется для объединения двух таблиц (эти две таблицы имеют не конкретную связь друг с другом), вызвать какие-либо проблемы с производительностью, особенно при сравнении с первичным ключом, системой сгенерированный кластерный индекс.
Буду признателен за любые советы здесь.