国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server 2014,表變量上的非聚集索引

2024-08-31 00:54:18
字體:
來源:轉載
供稿:網友
SQL Server 2014,表變量上的非聚集索引

從Paul White的推特上看到,在SQL Server 2014里,對于表變量(Table Variables),它是支持非唯一聚集索引(Non-Unique Clustered Indexes)和非聚集索引(Non-Clustered Indexes)的。看到這個,我決定在自己的虛擬機里嘗試下,因為這將是個卓越的功能。表變量很棒,因為用它可以避免過多的重編譯(excessive recompilations)。當你創建它們時,它們是沒有統計信息,你不會改變數據庫架構。它們只是變量,但在TempDb里還是常駐的。

表變量的一個缺點是,你不能在上面創建非聚集索引,這個在處理大量數據集時是不好的。但SQL Server 2014 CTP1已經修正了這個缺點。來看下面的代碼(點擊工具欄的顯示包含實際的執行計劃):

 1 DECLARE @tempTable TABLE 2 ( 3    ID INT IDENTITY(1, 1) PRIMARY KEY, 4    FirstName CHAR(100) INDEX idx_FirstName, 5    LastName CHAR(100) 6 ) 7      8 INSERT INTO @TempTable (FirstName, LastName) 9 SELECT TOP 100000 name, name FROM master.dbo.syscolumns10     11 SELECT FirstName FROM @TempTable12 WHERE FirstName = 'cid'13 GO

我們來看下SELECT語句的執行計劃,SQL Server執行了非聚集索引掃描運算符(Non-Clustered Index Seek Operator)。也就是說,我們可以在表變量上定義額外的非聚集索引。每個創建的非聚集索引是沒有統計信息。這個功能很酷哦,在常規數據庫表的簡單語法(easy syntax)也支持。我們來看下面的表定義:

1 CREATE TABLE foo2 (3     Col1 INT PRIMARY KEY CLUSTERED,4     Col2 INT INDEX idx_Col2,5     Col3 INT INDEX idx_Col36 )7 GO

這個在SQL Server 2008R2上會提示如下錯誤:

在SQL Server 2014上卻能成功執行!

更進一步,我們還可以用新語法創建復合索引(composite indexes):

1 -- Inline creation of Indexes2 CREATE TABLE foo23 (4     Col1 INT PRIMARY KEY CLUSTERED,5     Col2 INT INDEX idx_Col2 (Col2, Col3),6     Col3 INT7 )8 GO

之前的版本(我這里是SQL Server 2008R2)只能如下出錯提示:

真是酷炫叼炸天了,大家趕緊都去體驗下!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临澧县| 固始县| 平江县| 涞水县| 九江市| 石家庄市| 青田县| 万宁市| 邵东县| 罗城| 茌平县| 鄂托克旗| 汉寿县| 广宁县| 营山县| 安丘市| 铜山县| 龙胜| 渝中区| 江门市| 鄂伦春自治旗| 丹凤县| 微山县| 化州市| 衡水市| 嘉黎县| 永康市| 道孚县| 临潭县| 中山市| 来宾市| 碌曲县| 丹寨县| 镇巴县| 泗阳县| 隆化县| 上思县| 威远县| 尼勒克县| 九江市| 金华市|