|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Подскажите или киньте ссылку, где коротко и ясно написано: в каких случаях какие таблицы использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:11 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Ролг Хупин, https://www.brentozar.com/archive/2014/06/temp-tables-table-variables-memory-optimized-table-variables/ ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:25 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Ролг Хупин, зависит от целей применения. @ - не создают на себе статистики. оптимизатор (в зависимости от версии) считает что в таких таблицах или 1 или 1000 записей и может строить кривые планы если строк в итоге окажется сильно больше. добавлю: на такой таблице может быть индекс, тогда статистика будет. правда не помню с гистограммой или без. но данные в таких таблицах не подвержены под влияние явных транзакций, что в некоторых сценариях применения можно использовать как "фичу" # - напротив создают под собой объекты статистики и работают аналогично постоянным таблицам. общая концепция такова: если данных в темповую таблицу пишется мало (до 1000 строк) и таблица фигурирует не в очень сложных запросах имеет смысл использовать @t. в других сценариях # приоритетней ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:32 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
felix_ff Ролг Хупин, зависит от целей применения. @ - не создают на себе статистики. оптимизатор (в зависимости от версии) считает что в таких таблицах или 1 или 1000 записей и может строить кривые планы если строк в итоге окажется сильно больше. добавлю: на такой таблице может быть индекс, тогда статистика будет. правда не помню с гистограммой или без. но данные в таких таблицах не подвержены под влияние явных транзакций, что в некоторых сценариях применения можно использовать как "фичу" # - напротив создают под собой объекты статистики и работают аналогично постоянным таблицам. общая концепция такова: если данных в темповую таблицу пишется мало (до 1000 строк) и таблица фигурирует не в очень сложных запросах имеет смысл использовать @t. в других сценариях # приоритетней ок, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:05 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Ролг Хупин, советую табличные переменные использовать только тогда, когда без них не обойтись. Просматривать и анализировать развитый код с такими переменными визуально довольно сложно. Преимуществ производительности табличные переменные не дают, возможно, за исключением трюка с объявлением табличного типа in-memory. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 20:25 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Владислав Колосов Ролг Хупин, советую табличные переменные использовать только тогда, когда без них не обойтись. Просматривать и анализировать развитый код с такими переменными визуально довольно сложно. Преимуществ производительности табличные переменные не дают, возможно, за исключением трюка с объявлением табличного типа in-memory. понимаю, но здесь про инмемори речи нет, чисто тюнинг того, что есть, пытаюсь понять, что заменить. В процедуре используются # таблицы, но количество записей в них 10-100-400, не больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2021, 11:48 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Ролг Хупин, смысла нет, только голову будете ломать, глядя на код через год, когда всё забудете. Или другие люди будут ломать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2021, 11:50 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Владислав Колосов Ролг Хупин, смысла нет, только голову будете ломать, глядя на код через год, когда всё забудете. Или другие люди будут ломать :) в общем, заменил для теста # на @, в принципе все похоже, разобраться не сложно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2021, 11:53 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Ролг Хупин, С временными таблицами в процедурах можно нарваться на неприятности при их компиляции, если на момент компиляции такая временная таблица существует и ее структура отличается от создаваемой в процедуре. Плюс, такие процедуры нельзя будет вызвать через openquery и т.п., если временные таблицы участвуют в результирующем select. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2021, 12:14 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
Ролг Хупин, кстати еще в ту же кучу: использование времянок в ХП вызывает рекомпиляцию по причине deferred compile. поэтому их использование в высоконагруженных ХП к примеру которые вызываются очень часто, не рекомендуется. ну или нужно будет хинтовать запросы что бы фактор рекомпиляций не оказывал существенной просадки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2021, 12:34 |
|
Какие таблицы предпочтительно использовать: @ или #?
|
|||
---|---|---|---|
#18+
felix_ff Ролг Хупин, кстати еще в ту же кучу: использование времянок в ХП вызывает рекомпиляцию по причине deferred compile. поэтому их использование в высоконагруженных ХП к примеру которые вызываются очень часто, не рекомендуется. ну или нужно будет хинтовать запросы что бы фактор рекомпиляций не оказывал существенной просадки. ясно, т.е. все-таки во избежание такой фигни вместо # лучше использовать @ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2021, 12:50 |
|
|
start [/forum/topic.php?fid=46&msg=40048627&tid=1685033]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
97ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 485ms |
0 / 0 |