Oracle
 sql >> Database >  >> RDS >> Oracle

Tabelle temporanee globali - SQL Server vs Oracle

Le tabelle temporanee in Oracle sono oggetti permanenti che contengono dati temporanei che sono locali di sessione. Le tabelle temporanee in SQL Server sono oggetti temporanei.

  1. In SQL Server, una tabella temporanea globale contiene dati visibili a tutte le sessioni. "Le tabelle temporanee globali sono visibili a qualsiasi utente e qualsiasi connessione dopo la loro creazione." http://msdn.microsoft.com/en-us/library/ms186986 .aspx
  2. Le tabelle temporanee globali sono ancora oggetti temporanei che non persistono indefinitamente e potrebbe essere necessario creare prima dell'uso. "Le tabelle temporanee globali vengono... vengono eliminate quando tutti gli utenti che fanno riferimento alla tabella si disconnettono dall'istanza di SQL Server." http://msdn.microsoft.com/en-us/library/ms186986 .aspx

Trovo che una tabella temporanea locale, o variabile di tabella, sia la più simile alla tabella temporanea globale di Oracle, la grande differenza è che devi crearla ogni volta.

Di solito, in un caso come il tuo, il passaggio 3, aggiungere righe alla tabella temporanea, sarebbe fatto eseguendo un select ... into #temp_table_name .... (equivalente a Oracle create table ... as select ... ) http://msdn.microsoft.com/en-us/library/ ms188029.aspx

Inoltre, non puoi eseguire le seguenti operazioni in un processo memorizzato:(pseudo codice.)

begin proc
   call another proc to create local temp table.
   use temp table
end proc

Le tabelle temporanee locali vengono distrutte quando vengono restituite dalla stored procedure che le ha create.

Aggiornamento 14-10-2014: Il comportamento delle tabelle temporanee locali è diverso nella versione Parallel Data Warehousev di SQL Server. Le tabelle temporanee non vengono eliminate all'uscita dalla stored procedure che le ha create e continuano invece a esistere per il resto della sessione. Questo comportamento è stato osservato su:

select @@version
Microsoft SQL Server 2012 - 10.0.5108.1 (X64) Jun 24 2014 20:17:02 Copyright (c) Microsoft Corporation Parallel Data Warehouse (64-bit) on Windows NT 6.2 <X64> (Build 9200: )