Подтвердить что ты не робот

Явно отмените временную таблицу или пусть SQL Server справится с ней

Что лучше всего подходит для обработки сброса таблицы temp. Я прочитал, что вы должны явно обрабатывать падение, а также то, что сервер sql должен обрабатывать падение... что такое правильный метод? У меня всегда создалось впечатление, что вы должны сделать свою собственную очистку от темповых таблиц, которые вы создаете в sproc, и т.д. Но тогда я нашел другие биты, которые предлагают иначе.

Любое понимание было бы весьма полезным. Я просто обеспокоен тем, что не придерживаюсь лучшей практики с создаваемыми мной темп-таблицами.

Спасибо,

S

4b9b3361

Ответ 1

Мое мнение: сначала посмотрите, действительно ли вам нужна таблица temp, или - можете ли вы сделать это с CTE. Во-вторых, я всегда буду бросать свои временные таблицы. Иногда вам нужно иметь временную таблицу, привязанную к соединению (например, ## temp), поэтому, если вы запустите запрос во второй раз, и у вас есть явный код для создания временной таблицы, вы получите сообщение об ошибке уже существует. Уборка после себя - ВСЕГДА хорошая практика использования программного обеспечения.

Ответ 2

Локальные временные таблицы (одиночные # в имени) будут автоматически удаляться при выходе из области видимости, поэтому явное удаление не имеет смысла, если область недолговечна (например, хранимая процедура).

Ответ 3

В многопоточном сценарии, где каждый поток создает свой собственный набор таблиц, а количество потоков дросселируется, а не отбрасывание собственных таблиц означает, что губернатор рассмотрит ваш поток и создаст больше потоков... однако темп таблицы все еще вокруг (и, следовательно, соединения с сервером), таким образом, вы превысите пределы своего губернатора. если вы вручную удаляете таблицы temp, поток не заканчивается до тех пор, пока они не будут сброшены, и не будут созданы новые потоки, тем самым сохраняя способность губернатора избегать подавления SQL-движка

Ответ 4

По моему мнению. Нет необходимости явно выделять временные таблицы. SQL Server будет обрабатывать, чтобы отбрасывать временные таблицы, хранящиеся в temp db, в случае хранения пространства для обработки запроса.