Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
palladin600 Member Откуда: Minsk Power Station Сообщений: 514 |
Добрый день! Подскажите пожалуйста, что будет более производительнее, если стоит следующая задача: На сайте нужно заполнить 3 списка значениями (длина, ширина, высота). Есть таблица с сущностями, для которых прописаны габариты. Примерно, 200к. Уникальных значений в габаритах, 50-100. Как работает сейчас: Длинна = select distinct lenght from t Ширина = select distinct width from t Высота = = select distinct height from t или же, лучше хранить уникальные значения в отдельной таблице? tDimesions(caption, value) и брать с этой таблицы. Может так выгоднее будет, в смысле, менее ресурсозатратнее для сервера? |
4 авг 19, 15:55 [21941583] Ответить | Цитировать Сообщить модератору |
palladin600 Member Откуда: Minsk Power Station Сообщений: 514 |
Ну или, т.к. значения габаритов редко меняются, может можно запросы кешировать как-то? А обновлять их лишь тогда, когда действительно попадает(или удаляется) новое значение габарита. |
4 авг 19, 15:58 [21941584] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
В отдельной таблице. |
4 авг 19, 17:09 [21941605] Ответить | Цитировать Сообщить модератору |
SERG1257 Member Откуда: Сообщений: 2825 |
копайте в сторону индексированных вьюх (с их ограничениями) https://docs.microsoft.com/en-us/sql/relational-databases/views/create-indexed-views?view=sql-server-2017 только вместо дистинкт будет group by create view lenght_view with schemabinding as select lenght,COUNT_BIG(*) from t group by lenght |
4 авг 19, 18:39 [21941660] Ответить | Цитировать Сообщить модератору |
vikkiv Member Откуда: EU Сообщений: 2921 |
SERG1257, зачем там любой count ? просто group by разве не вполне достаточно и без функции агрегации? |
4 авг 19, 19:33 [21941681] Ответить | Цитировать Сообщить модератору |
SERG1257 Member Откуда: Сообщений: 2825 |
If GROUP BY is present, the VIEW definition must contain COUNT_BIG(*) and must not contain HAVING. These GROUP BY restrictions are applicable only to the indexed view definition. A query can use an indexed view in its execution plan even if it does not satisfy these GROUP BY restrictions. |
||
4 авг 19, 19:37 [21941682] Ответить | Цитировать Сообщить модератору |
vikkiv Member Откуда: EU Сообщений: 2921 |
SERG1257, да, точно, ![]() |
4 авг 19, 19:45 [21941686] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |