是否SQL服務器緩存功能的執行計劃?功能在SQL Server 2008
0
A
回答
2
據車管所肯定的,但http://msdn.microsoft.com/en-us/library/ms189747.aspx我不得不運行測試,以確認。在輸出
對象ID是「的對象(例如,存儲過程或用戶定義的函數)該查詢計劃的ID」。
測試它,是的,它看起來像他們得到一個單獨的計劃緩存條目。
測試腳本:
create function foo (@a int)
returns int
as
begin
return @a
end
最基本的創建功能。
-- clear out the plan cache
dbcc freeproccache
dbcc dropcleanbuffers
go
-- use the function
select dbo.foo(5)
go
-- inspect the plan cache
select * from sys.dm_exec_cached_plans
go
計劃緩存於是具有4個條目,所述一個列爲OBJTYPE = PROC是功能計劃緩存,抓住所述手柄和裂縫打開。
select * from sys.dm_exec_query_plan(<insertplanhandlehere>)
我測試的第一個adhoc是實際查詢,第二個ad-hoc是詢問計劃緩存的查詢。因此,它明確接收到與正在發佈的特別查詢不同的proc類型的單獨條目。計劃句柄也不同,當使用計劃句柄提取時,它將對象id提供回原始函數,而特別查詢不提供對象ID。
2
是的,看到rexem的蒂博爾鏈接和安德魯的回答。
但是......一個簡單的表值函數是嵌套的/擴展到外部查詢反正。像一個看法。 And my answer (with links) here
也就是說,這種類型:
CREATE FUNC dbo.Foo()
RETURNS TABLE
AS
RETURN (SELECT ...)
GO
相關問題
- 1. SQL Server 2008中仿效限制功能
- 2. SQL Server 2008的旋轉功能
- 3. SQL Server 2008 FILESTREAM功能與VLDB
- 4. 數組像SQL Server 2008中的功能
- 5. 不能在SQL Server 2008 R2
- 6. 不能在SQL Server 2008中
- 7. Sql Server 2008性能
- 8. 在SQL Server功能
- 9. 功能在SQL Server
- 10. 在SQL Server 2008
- 11. 在SQL Server 2008
- 12. 在SQL Server 2008
- 13. SQL Server 2008性能問題
- 14. IIS6不能與SQL Server 2008
- 15. SQL Server 2008大表性能
- 16. sql server 2008 LIKE性能
- 17. SQL Server 2008 R2的性能
- 18. 的SQL Server 2008 FILESTREAM性能
- 19. TRIM功能在SQL Server
- 20. SQL Server 2008 R2中過時的T-SQL編程功能
- 21. 不能從SQL Server 2008中調用RICHTEXT.RichtextCtrl(在Windows 2008 Server x64)的
- 22. FORMAT功能在SQL Server不工作2008 R2
- 23. SQL Server Express 2008 r2上的FullText搜索功能在哪裏?
- 24. SQL Server PIVOT功能
- 25. SQL Server的功能
- 26. SQL Server 2008與SQL Server 2008 Express大小
- 27. 單在SQL Server 2008
- 28. 做在SQL Server 2008
- 29. SQL Server 2008中 - 不能在窗口
- 30. SQL Server 2008,SQL Server 2005
參考:http://sqlblog.com/blogs/tibor_karaszi/archive/2007/06/14/are-execution-plans-for-functions- cached.aspx – 2009-10-13 17:41:33