表變數:儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。
優點:使用靈活,使用完之後立即釋放,不占用物理儲存空間
缺點:只適合較小資料量的暫時儲存,不能建索引
,資料量稍大時查詢效率慢,佔記憶體
使用臨時表和表變數的資料量大小沒有具體的臨界值,dba建議1000條資料,查詢列不要太多的情況下。
臨時表:臨時表是儲存在物理硬碟中的,建表位置在tempdb庫中, 可以長久儲存資料
優點:能夠長久儲存資料,可以建立索引,和普通的物理表一樣,能儲存大量資料
缺點:不方便使用,使用完之後要手動的drop,不然就會一直存在(此次連線關閉後就沒了)
臨時表:
1.selectinto #filterlist from
table 。。。。。
2.create
table #tegeb ( number int , amount decimal, ststus varchar )
insert
into #tegeb select
top10 number, amount,atatus from business.dbo.order with
(nolock)
select
*from #tegeb //臨時表
一直存在,直到鏈結關閉
drop
table dbo.#tegeb //必須手動drop
表變數:
1. declare@temp
table ( number
int , amount decimal, ststus varchar ) insert
into
@temp
select
top10
number, amount,status from business.dbo.order
select
*from
@temp
//已經不存在了
setstatistics profile on
:顯示分析、編譯和執行查詢所需的時間(以毫秒為單位)。
setstatistics io on
:報告與語句內引用的每個表的掃瞄數、邏輯讀取數(在快取記憶體中訪問的頁數)和物理讀取數(訪問磁碟的次數)有關的資訊。
setstatistics time on:顯示每個查詢執行後的結果集,代表查詢執行的配置檔案。
使用方法:開啟sql server 查詢分析器,輸入以下語句:
setstatistics profile on
setstatistics io on
setstatistics time on
go/*
--sql指令碼開始
*/select
[testcase
]from
[testcaseselect]go
/*--sql指令碼結束
*/set
statistics profile off
setstatistics io off
setstatistics time off
setstatistics io on
--關閉有關由transact-sql 語句生成的磁碟活動量的資訊
setstatistics io off
--顯示[返回有關語句執**況的詳細資訊,並估計語句對資源的需求]
set showplan_all on
--關閉[返回有關語句執**況的詳細資訊,並估計語句對資源的需求]
set showplan_all off
SQL 表變數和臨時表
sql 表變數和臨時表 表變數 儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。優點 使用靈活,使用完之後立即釋放,不占用物理儲存空間 缺點 只適合較小資料量的暫時儲存,不能建索引,資料量稍大時查詢效率慢,佔記憶體 使用臨時表和表變數的...
SQL 表變數與臨時表
表變數在sql server 2000中首次被引入。表變數的具體定義包括列定義,列名,資料型別和約束。而在表變數中可以使用的約束包括主鍵約束,唯一約束,null約束和check約束 外來鍵約束不能在表變數中使用 定義表變數的語句是和正常使用create table定義表語句的子集。只是表變數通過de...
mysql表變數臨時表 表變數和臨時表詳解
首先讓我們來看看什麼是表變數和臨時表。sql server 表變數 1.初識表變數 表變數在sql server 2000中首次被引用。表變數的定義和建立乙個表大致相同,只不過是使用declare variable而不是create table,表變數定義包括列定義,列名,資料型別和約束 可用的約束...