INF: Часто задаваемые вопросы - SQL Server 2000 — табличные переменные

Переводы статьи Переводы статьи
Код статьи: 305977 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

Данная статья содержит ответы на часто задаваемые вопросы Связанные переменные таблицы, представленные в SQL Server (FAQ) 2000.

Чтобы прочитать описание электронной документации по SQL Server таблицы переменные, посетите следующий веб-узел корпорации Майкрософт:
.aspx http://msdn2.Microsoft.com/en-us/library/aa260638 (SQL.80)

Дополнительная информация

В1. Почему появились табличные переменные, когда временные таблицы уже были доступны?

A1: Табличные переменные имеют следующие преимущества перед временный таблицы:
  • Как уже упоминалось в SQL Server Books Online «Tables» статьи, табличные переменные, такие как локальные переменные имеют хорошо определенные области на конец которого они автоматически очищается.
  • Привести компиляциям сохраненного табличные переменные Процедура по сравнению с временным таблицам.
  • Транзакций, включающих последней таблице переменные только для время процесса обновления в табличную переменную. Таким образом требуют табличные переменные меньше блокировок и ведение журнала ресурсов. Поскольку табличные переменные имеют ограниченную область применения и не являются частью постоянных баз данных, не откатов транзакций на них влияют.
Q2: Что значит произнеся табличных переменных приведет меньше перекомпиляции хранимой процедуры, чем при использовании временных таблиц?

A2: Следующей статье рассматриваются некоторые причины при хранении перекомпилируются процедур:

243586 Устранение неполадок перекомпиляции хранимых процедур
"Перекомпиляции, вызванные определенными временной таблицы Раздел операции"также перечислены некоторые требования, чтобы избежать таких как перекомпиляция из-за временных таблиц. Эти ограничения не применяются к табличные переменные.

Табличные переменные полностью изолированы в пакет который создает их таким образом не выполняется разрешение "не требуются при CREATE или ALTER Инструкция вступает в силу, которые могут возникнуть при использовании временной таблицы. Временные таблицы Это выполняется разрешение требуется ", таблицу можно ссылаться из вложенных хранимых процедура. Табличные переменные происходило полностью, можно использовать хранимые процедуры план, который уже скомпилированы, сэкономить ресурсы для обработки хранимую процедура.

Q3: Каковы недостатки, табличные переменные

A3: Вот некоторые из недостатков по сравнению с временных таблиц:
  • Не удается создать не кластеризированных индексов на табличные переменные другие системы индексов, созданных для UNIQUE или PRIMARY ограничение. Может влиять на производительность запросов по сравнению с Временная таблица, содержащая некластеризованных индексов.
  • Статистика как временные табличные переменные не поддерживаются таблицы можно. Невозможно создать статистику в табличных переменных через автоматические Создание или с помощью инструкции CREATE STATISTICS. Таким образом для комплексного запросов в больших таблицах, отсутствие статистики предотвращения оптимизатор Определите наилучший план запроса, таким образом влияя на производительность запрос.
  • Определение таблицы не может быть изменен после начальной Оператор DECLARE.
  • SELECT или INSERT EXEC нельзя использовать переменные таблиц В инструкции.
  • ПРОВЕРЬТЕ ограничения, значения DEFAULT и вычисляемые столбцы в объявление типа таблицы нельзя вызывать пользовательские функции.
  • Нельзя использовать для выполнения динамического запроса SQL Server, на который ссылается инструкция EXEC или sp_executesql хранимой процедуры табличную переменную, если был создан табличную переменную вне инструкции EXEC или sp_executesql хранимой процедуры. Поскольку можно ссылаться в табличных переменных своей локальной области видимости только, инструкция EXEC и sp_executesql хранимой процедуры будет выходит за рамки таблицы переменная. Тем не менее можно создать табличную переменную и выполнять всю обработку Область локальных переменных таблицы — а затем внутри EXEC инструкции или процедуры sp_executesql хранимой процедуры из-за в инструкции EXEC или sp_executesql хранимой процедуры.
Q4: Такое табличные переменные только для памяти структур, которые будут гарантированно лучшую производительность по сравнению с постоянными или временными таблицами, поскольку они сохраняются в базе данных, который находится на физическом диске

A4: Переменная table не только структура. Поскольку таблица переменная может содержать больше данных, чем может поместиться в памяти, они должны иметь место на диск для хранения данных. Табличные переменные создаются в базе данных tempdb подобен временным таблицам. Если объем памяти доступен обе таблицы, переменных и временные таблицы создаются и обрабатываются при работе с память (кэш данных).

Вопрос 5: Необходимо использовать вместо временных таблиц табличные переменные?

A5: Ответ зависит от трех факторов:
  • Количество строк, вставляемых в Таблица.
  • Число повторных компиляций сохраненный запрос с.
  • Тип запросов и их зависимость от индексов и Статистика производительности.
В некоторых случаях нарушения с временной хранимой процедуры таблицы в меньшие хранимых процедур, так что перекомпиляция происходит более мелкие единицы может быть полезным.

В общем случае использование табличных переменных по возможности, за исключением случаев существует значительный объем данных и — повторного использования таблицы. В этом случае можно создавать индексы на Временная таблица для повышения производительности запросов. Однако каждый сценарий может быть другой. Корпорация Майкрософт рекомендует проверить Если несколько табличных переменных полезна, чем временные таблицы для определенного запроса или хранимой процедура.

Свойства

Код статьи: 305977 - Последний отзыв: 30 мая 2013 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Standard Edition
Ключевые слова: 
kbinfo kbmt KB305977 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 305977

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com