ORACLE暫存資料表和SQLSERVER暫存資料表異同

來源:互聯網
上載者:User

 SQL SERVER暫存資料表
也可以建立暫存資料表。暫存資料表與永久表相似,但暫存資料表儲存在 tempdb 中,當不再使用時會自動刪除。
有本地和全域兩種類型的暫存資料表,二者在名稱、可見度和可用性上均不相同。本地暫存資料表的名稱以單個數字記號 (#) 打頭;
它們僅對當前的使用者串連是可見的;當使用者從 Microsoft? SQL Server? 2000 執行個體中斷連線時被刪除。全域暫存資料表的名稱以數學符號
(##) 打頭,建立後對任何使用者都是可見的,當所有引用該表的使用者從 SQL Server 中斷連線時被刪除。
例如,如果建立名為 employees 的表,則任何人只要在資料庫中有使用該表的安全許可權就可以使用該表,除非它已刪除。
如果建立名為 #employees 的本地暫存資料表,只有您能對該表執行操作且在中斷連線時該表刪除。如果建立名為 ##employees 的全域暫存資料表
,資料表中的任何使用者均可對該表執行操作。如果該表在您建立後沒有其他使用者使用,則當您中斷連線時該表刪除。如果該表在您建立
後有其他使用者使用,則 SQL Server在所有使用者中斷連線後刪除該表
不同:
1.        SQL SERVER暫存資料表是一種”記憶體表”,表是儲存在記憶體中的.ORACLE暫存資料表除非執行DROP TABLE,否則表定義會保留在資料字典中.
2.        SQL SERVER暫存資料表不存在類似ORACLE暫存資料表 事務層級 上的功能.
3        SQL SERVER本地暫存資料表(#) 與 ORACLE的會話層級暫存資料表類似,但是在會話退出的時候,ORACLE不會刪除表.
4        SQL SERVER的全域暫存資料表(##) 是指多個串連共用同一片記憶體.當沒有指標引用該記憶體地區時,SQL SERVER自動釋放全域暫存資料表.
5        由於ORACLE不是一種 記憶體中的資料庫. 所以如果ORACLE類似SQL SERVER 頻繁的對暫存資料表進行建立和刪除,必定會影響效能.
所以ORACLE會保留暫存資料表的定義直到使用者DROP TABLE.
6        在ORACLE中,如果需要多個使用者共用一個表(類似SQL SERVER的全域暫存資料表##).則可以利用永久表,
並且在表中添加一些可以唯一標識使用者的列.利用觸發器和視圖.當使用者退出的時候,根據該登陸使用者的唯一資訊刪除相應的表中的資料.
這種方法給ORACLE帶來了一定量的負載.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.