Breaking News
Loading...
23/04/2014

Temporary table

Ta có thể dùng Temp table để giảm độ phức tạp của câu query bằng cách chia nó ra những phần nhỏ và có execution plan tốt hơn.

http://sqlblog.com/blogs/paul_white/archive/2012/08/15/temporary-tables-in-stored-procedures.aspx http://www.sqlpassion.at/archive/2013/06/27/improved-temp-table-caching-in-sql-server-2014/

Lưu ý khi dùng Temporary table trong Stored Procedure:
  • Temp table được cached qua các lần thực thi, cho dù ta tường minh khai báo lệnh Create và Drop temp table trong Stored Procedure, ta có thể chứng minh điều này qua link bên dưới
  • Statistics tạo ra bởi Temp table cũng được cached
Chứng minh Temp table được cached qua các lần thực thi
ALTER PROCEDURE dbo.Demo
AS
BEGIN
    CREATE TABLE #Temp (col1 int NULL);

    SELECT ObjectID = OBJECT_ID(N'tempdb..#Temp'); 

    DROP TABLE #Temp;
END;

GO
EXECUTE dbo.Demo;
EXECUTE dbo.Demo;
EXECUTE dbo.Demo;

Một bài viết hay khác về lợi ích của Temp table và tránh Parameter Sniffing
http://sqlblog.com/blogs/paul_white/archive/2012/08/15/temporary-tables-in-stored-procedures.aspx

0 comments:

Post a Comment

 
Toggle Footer