|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
Доброго времени суток! В БД нашёл одно узкое место, решил причесать и добавить view, и вот упёрся в один момент, который не годится для индексированного представления. Сами тестовые данные такие: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
Из журнала мне нужно получить сводку, в каком отделе присутствуют уникальные детали по каждому отделу без брака на момент запроса. Эти данные я получаю так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
на выходе отдаются записи: Код: plaintext 1. 2. 3. 4.
Вопрос в студию, а можно переписать запрос без использования distinct для моего случая? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 14:31 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
Никак. Делайте отдельную сгруппированную таблицу, поддерживайте ее наряду с основными данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 14:33 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Никак. Делайте отдельную сгруппированную таблицу, поддерживайте ее наряду с основными данными . Скажите, что имеется в виду под словом "поддерживайте"? Т.е. помимо внесения данных в основную таблицу-журнал, надо будет ещё контролировать внесение данные в дополнительную таблицу? Мне кажется, это сложно придумать. На клиентах придётся доделывать после импорта данных ещё один запрос, который сносит в сгруппированной таблице текущие данные, и затем инсертит уже актуальные. А можно ли настроить автоматическую какую-то зависимость попадания туда данных? Если не использовать триггеры, то я ещё слышал про Track Data Changes, или это уже крайности? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 14:52 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
palladin600, distinct = group by по всем полям. Такие индексированные вью создавать можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 15:07 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
msLex, а можно попросить кусочек кода, чтобы зацепиться. А то, что-то совсем не двигается. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 17:46 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 19:09 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
SERG1257 Код: sql 1. 2.
Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 22:45 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
palladin600, я настоятельно рекомендую вам отказаться от этой затеи. Вы ещё не дошли до главного сюрприза -- когда в таблицы будет вестись параллельная вставка, вы начнете ловить нехилые дедлоки из-за индексированного вью. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 09:12 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
alexeyvg SERG1257 Код: sql 1. 2.
Код: sql 1. 2.
Нельзя. Это требование индексированные вью. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 10:42 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
palladin600, Почитайте этот пост https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1208382&msg=19015094 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 10:53 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
palladin600, Под вашу задачу подойдут обычные индексы с условием и без, колоночные, возможно. Через матвью тоже можно, но они накладывает логические (синтаксис) и физические ограничения (обновление одного матвью из разных таблиц-источников). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 13:21 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
Mr. X palladin600, Под вашу задачу подойдут обычные индексы с условием и без, колоночные, возможно. Через матвью тоже можно, но они накладывает логические (синтаксис) и физические ограничения (обновление одного матвью из разных таблиц-источников). Вы забываете, что имеете дело с MSSQL, а не ORACLE. И вопрос не слове "матвью", в механизме БД, по которому все это работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 13:33 |
|
Как можно было обойти distinct для создания индексированного представления?
|
|||
---|---|---|---|
#18+
SERG1257 Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 19:20 |
|
|
start [/forum/topic.php?fid=46&msg=39941973&tid=1686283]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 454ms |
0 / 0 |