你的位置:首页 > 软件开发 > 数据库 > SQL Server 2014,改善的临时表缓存

SQL Server 2014,改善的临时表缓存

发布时间:2015-06-30 10:00:20
在一些先决条件下,SQL Server可以缓存临时表(cache Temp Tables)。缓存临时表意味着当你创建反复创建同个临时表时,SQL Server就可以重用它们。这会从整体上大幅度提高你的工作量(性能),因为SQL Server不需要访问内存里的特定页(PFS,GAM ...

SQL Server 2014,改善的临时表缓存

在一些先决条件下,SQL Server可以缓存临时表(cache Temp Tables)。缓存临时表意味着当你创建反复创建同个临时表时,SQL Server就可以重用它们。这会从整体上大幅度提高你的工作量(性能),因为SQL Server不需要访问内存里的特定页(PFS,GAM,SGAM),经常访问这些页在工作量大的情况下会引起加锁竞争(Latch Contention)。Paul White有一篇很棒的文章详细描述这个情况,可以点此围观下。

临时表缓存的条件之一是不能在存储过程里混合使用DML(Data Manipulation Language 数据操作语言)和DDL(Data Definition Language 数据定义语言)语句。我们来看下面的代码:

 1 -- Create a new stored procedure 2 CREATE PROCEDURE PopulateTempTable 3 AS 4 BEGIN 5   -- Create a new temp table 6   CREATE TABLE #TempTable 7   ( 8     Col1 INT IDENTITY(1, 1), 9     Col2 CHAR(4000),10     Col3 CHAR(4000)11   )12 13   -- Create a unique clustered index on the previous created temp table14   CREATE UNIQUE CLUSTERED INDEX idx_c1 ON #TempTable(Col1)15 16   -- Insert 10 dummy records17   DECLARE @i INT = 018   WHILE (@i < 10)19   BEGIN20     INSERT INTO #TempTable VALUES ('Woody', 'Tu')21     SET @i += 122   END23 END24 GO

原标题:SQL Server 2014,改善的临时表缓存

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。