powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Какие таблицы предпочтительно использовать: @ или #?
11 сообщений из 11, страница 1 из 1
Какие таблицы предпочтительно использовать: @ или #?
    #40048428
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите или киньте ссылку, где коротко и ясно написано: в каких случаях какие таблицы использовать?
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048434
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048437
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

зависит от целей применения.

@ - не создают на себе статистики. оптимизатор (в зависимости от версии) считает что в таких таблицах или 1 или 1000 записей и может строить кривые планы если строк в итоге окажется сильно больше.

добавлю: на такой таблице может быть индекс, тогда статистика будет. правда не помню с гистограммой или без.

но данные в таких таблицах не подвержены под влияние явных транзакций, что в некоторых сценариях применения можно использовать как "фичу"

# - напротив создают под собой объекты статистики и работают аналогично постоянным таблицам.


общая концепция такова:
если данных в темповую таблицу пишется мало (до 1000 строк) и таблица фигурирует не в очень сложных запросах имеет смысл использовать @t.
в других сценариях # приоритетней
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048451
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

зависит от целей применения.

@ - не создают на себе статистики. оптимизатор (в зависимости от версии) считает что в таких таблицах или 1 или 1000 записей и может строить кривые планы если строк в итоге окажется сильно больше.

добавлю: на такой таблице может быть индекс, тогда статистика будет. правда не помню с гистограммой или без.

но данные в таких таблицах не подвержены под влияние явных транзакций, что в некоторых сценариях применения можно использовать как "фичу"

# - напротив создают под собой объекты статистики и работают аналогично постоянным таблицам.


общая концепция такова:
если данных в темповую таблицу пишется мало (до 1000 строк) и таблица фигурирует не в очень сложных запросах имеет смысл использовать @t.
в других сценариях # приоритетней


ок, спасибо!
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048553
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

советую табличные переменные использовать только тогда, когда без них не обойтись. Просматривать и анализировать развитый код с такими переменными визуально довольно сложно. Преимуществ производительности табличные переменные не дают, возможно, за исключением трюка с объявлением табличного типа in-memory.
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048626
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Ролг Хупин,

советую табличные переменные использовать только тогда, когда без них не обойтись. Просматривать и анализировать развитый код с такими переменными визуально довольно сложно. Преимуществ производительности табличные переменные не дают, возможно, за исключением трюка с объявлением табличного типа in-memory.


понимаю, но здесь про инмемори речи нет, чисто тюнинг того, что есть, пытаюсь понять, что заменить.
В процедуре используются # таблицы, но количество записей в них 10-100-400, не больше.
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048627
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

смысла нет, только голову будете ломать, глядя на код через год, когда всё забудете. Или другие люди будут ломать :)
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048629
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Ролг Хупин,

смысла нет, только голову будете ломать, глядя на код через год, когда всё забудете. Или другие люди будут ломать :)


в общем, заменил для теста # на @, в принципе все похоже, разобраться не сложно
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048639
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

С временными таблицами в процедурах можно нарваться на неприятности при их компиляции, если на момент компиляции такая временная таблица существует и ее структура отличается от создаваемой в процедуре.
Плюс, такие процедуры нельзя будет вызвать через openquery и т.п., если временные таблицы участвуют в результирующем select.
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048648
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

кстати еще в ту же кучу: использование времянок в ХП вызывает рекомпиляцию по причине deferred compile.
поэтому их использование в высоконагруженных ХП к примеру которые вызываются очень часто, не рекомендуется. ну или нужно будет хинтовать запросы что бы фактор рекомпиляций не оказывал существенной просадки.
...
Рейтинг: 0 / 0
Какие таблицы предпочтительно использовать: @ или #?
    #40048651
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

кстати еще в ту же кучу: использование времянок в ХП вызывает рекомпиляцию по причине deferred compile.
поэтому их использование в высоконагруженных ХП к примеру которые вызываются очень часто, не рекомендуется. ну или нужно будет хинтовать запросы что бы фактор рекомпиляций не оказывал существенной просадки.


ясно, т.е. все-таки во избежание такой фигни вместо # лучше использовать @ ?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Какие таблицы предпочтительно использовать: @ или #?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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