Временные таблицы в sql server? - PullRequest
5 голосов
/ 30 апреля 2010

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

Ответы [ 3 ]

11 голосов
/ 30 апреля 2010

При написании кода T-SQL вам часто требуется таблица, в которой временно хранятся данные, когда наступает время выполнения этого кода. У вас есть четыре варианта таблицы: обычные таблицы, локальные временные таблицы, глобальные временные таблицы и переменные таблиц. Каждый из четырех вариантов таблицы имеет свое собственное назначение и использование, и у каждого есть свои преимущества и проблемы:

* Normal tables are exactly that, physical tables defined in your database.

* Local temporary tables are temporary tables that are available only to the session that created them. These tables are automatically destroyed at the termination of the procedure or session that created them.

* Global temporary tables are temporary tables that are available to all sessions and all users. They are dropped automatically when the last session using the temporary table has completed. Both local temporary tables and global temporary tables are physical tables created within the tempdb database.

* Table variables are stored within memory but are laid out like a table. Table variables are partially stored on disk and partially stored in memory. It's a common misconception that table variables are stored only in memory. Because they are partially stored in memory, the access time for a table variable can be faster than the time it takes to access a temporary table.

Какой использовать:

* If you have less than 100 rows generally use a table variable.  Otherwise use  a temporary table.  This is because SQL Server won't create statistics on table variables.
* If you need to create indexes on it then you must use a temporary table.
* When using temporary tables always create them and create any indexes and then use them.  This will help reduce recompilations.  The impact of this is reduced starting in SQL Server 2005 but it's still a good idea.

Пожалуйста, обратитесь на эту страницу http://www.sqlteam.com/article/temporary-tables

4 голосов
/ 30 апреля 2010

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

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

http://www.sqlservercentral.com/articles/T-SQL/temptablesinsqlserver/1279/
http://msdn.microsoft.com/en-us/library/aa258255%28SQL.80%29.aspx

2 голосов
/ 28 марта 2012

Временные таблицы могут быть созданы во время выполнения и могут выполнять все виды операций, которые может выполнять одна обычная таблица. Но, в зависимости от типов таблиц, область действия ограничена. Эти таблицы создаются внутри базы данных tempdb.

SQL Server предоставляет два типа временных таблиц в зависимости от поведения и области действия таблицы. Это:

Локальная временная таблица

Глобальная временная таблица

Локальная временная таблица Локальные временные таблицы доступны только для текущего соединения для пользователя; и они автоматически удаляются, когда пользователь отключается от экземпляров. Имя локальной временной таблицы отмечается знаком хеша ( "#" ). Глобальная временная таблица Имя глобальной временной таблицы начинается с двойного хеша ( "##" ). Как только эта таблица была создана соединением, как постоянная таблица, она становится доступной любому пользователю по любому соединению. Его можно удалить только после того, как все соединения будут закрыты.

Когда использовать временные таблицы?

• Когда мы выполняем большое количество операций со строками в хранимых процедурах. • Это полезно для замены курсора . Мы можем сохранить данные набора результатов во временной таблице, а затем мы можем манипулировать данными оттуда. • Когда у нас сложная операция соединения .

Очки, которые следует помнить перед использованием временных таблиц -

• Временная таблица, созданная на базе данных базы данных SQL Server. Это отдельная база данных. Таким образом, это дополнительные издержки, которые могут вызвать проблемы с производительностью. • Количество строк и столбцов должно быть минимально необходимым. • Таблицы должны быть удалены, когда они закончили свою работу.

Альтернативный подход: переменная таблицы -

Альтернативой временной таблицы является переменная Table, которая может выполнять все виды операций, которые мы можем выполнять в временной таблице. Ниже приведен синтаксис использования табличной переменной.

Когда использовать переменную таблицы над таблицей Temp -

Таблица переменных всегда полезна для меньшего количества данных. Если результирующий набор возвращает большое количество записей, нам нужно перейти к временной таблице.

...