Временные таблицы и транзакции в sql 2005 - PullRequest
0 голосов
/ 03 сентября 2010

Я пишу приложение в C #.Я использую временные таблицы внутри транзакции.Мой сервер SQL 2005. Есть ли какая-либо угроза производительности, я где-то читал, что следует избегать использования временных таблиц внутри транзакций (http://www.sql -server-performance.com / tips / temp_table_tuning_p1.aspx сообщение внизуэкрана добавлено 2-24-2003).

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Это довольно легко проверить.

В одном окне запроса выполните следующее

BEGIN TRAN

CREATE TABLE #T1(I INT)
INSERT INTO #T1 VALUES (1)

Затем в другом окне запроса запустите то же самое. Вы обнаружите, что там нет блокировки.

Итак, утверждение в этом совете, что

это помешает другим исполнять тот же запрос, очень больно параллелизм и производительность. В эффект, это превращает ваше приложение в однопользовательское приложение.

кажется неправдой.

0 голосов
/ 03 сентября 2010

Ответ в первом ряду: «В общем, следует избегать временных таблиц, если это возможно».Посмотрите на ваше приложение, если достаточно быстро.Старайтесь избегать дизайна, основанного только на временных таблицах.Использование временных таблиц должно быть исключением внутри приложения, а не правилом.Попробуйте найти альтернативный дизайн, не увеличивая стоимость (время, потраченное на создание нового дизайна).Посмотрите эту статью, чтобы увидеть, как на производительность влияет количество данных: http://www.sql -server-performance.com / articles / per / temp_tables_vs_variables_p1.aspx

...