powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Делать ли select distinct или создать отдельную таблицу?
7 сообщений из 7, страница 1 из 1
Делать ли select distinct или создать отдельную таблицу?
    #39845106
palladin600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Подскажите пожалуйста, что будет более производительнее, если стоит следующая задача:
На сайте нужно заполнить 3 списка значениями (длина, ширина, высота).
Есть таблица с сущностями, для которых прописаны габариты. Примерно, 200к. Уникальных значений в габаритах, 50-100.
Как работает сейчас:
Длинна = select distinct lenght from t
Ширина = select distinct width from t
Высота = = select distinct height from t

или же, лучше хранить уникальные значения в отдельной таблице? tDimesions(caption, value) и брать с этой таблицы. Может так выгоднее будет, в смысле, менее ресурсозатратнее для сервера?
...
Рейтинг: 0 / 0
Делать ли select distinct или создать отдельную таблицу?
    #39845107
palladin600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или, т.к. значения габаритов редко меняются, может можно запросы кешировать как-то? А обновлять их лишь тогда, когда действительно попадает(или удаляется) новое значение габарита.
...
Рейтинг: 0 / 0
Делать ли select distinct или создать отдельную таблицу?
    #39845122
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В отдельной таблице.
...
Рейтинг: 0 / 0
Делать ли select distinct или создать отдельную таблицу?
    #39845159
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
копайте в сторону индексированных вьюх (с их ограничениями)
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
...
Рейтинг: 0 / 0
Делать ли select distinct или создать отдельную таблицу?
    #39845177
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

зачем там любой count ?
просто group by разве не вполне достаточно и без функции агрегации?
...
Рейтинг: 0 / 0
Делать ли select distinct или создать отдельную таблицу?
    #39845178
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv зачем там любой count ?Чтобы был. Из ссылки выше

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.
...
Рейтинг: 0 / 0
Делать ли select distinct или создать отдельную таблицу?
    #39845180
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

да, точно,
index без него не создаётся..
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Делать ли select distinct или создать отдельную таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]