Я розглядав можливість використання індексованих представлень, щоб підвищити ефективність кількох найпоширеніших представлень.
Однак індексовані представлення не підтримують унікальні кластерні індекси, що трохи суперечить пріоритету, встановленому рештою структури бази даних.
Наприклад, ось спрощена версія пари наших таблиць.
-Groups-
Group ID GroupName
-Users-
UserKey UserName FullName GroupID
Індекси розміщені на Group.GroupID (Некластеризований) та Users.GroupID (Clustered). Кластерний ключ, що знаходиться в групі GroupID, в таблиці користувачів, оскільки найчастіше буде знайдено коло користувачів із певної групи. Очевидно, у вас було б кілька користувачів на групу, тому цей кластерний індекс не унікальний.
Це залишає мене трохи непевним щодо того, як слідкувати за цим пріоритетом при індексації моїх поглядів, таких як цей приклад, оскільки я не можу мати унікальний кластерний індекс.
ConsumableID ConsumableVariantID AllowThresholdOverwrite FullPath GroupID ManufacturerID Type ModelID
101 29 1 0.1.2.4. 4 3 3 2
Насправді єдиним значенням цього представлення, яке завжди було б унікальним, є стовпець ConsumableID, тому мені залишається мало вибору, де розмістити свій індекс.
Чому перегляди не дозволяють не унікальні кластерні індекси, коли це роблять звичайні таблиці?
(GroupID, UserID)
. Не обмежуйтесь одним стовпцем для ключа. 2 - Я уявляю, що обмеження для перегляду є тому, що це додатковий об'єкт даних, який повинен мати рядки, які легко прив'язуються до індексів NC. Для таблиці, унікальний ключ CI отримує доданий до нього int, але я думаю, що це було б складніше з індексованим видом, оскільки це не є фактичною таблицею, але потрібно ПОВЕРНУТИСЯ фактичну таблицю.