SQL Server는 함수의 실행 계획을 캐시합니까?SQL Server 2008의 함수
0
A
답변
2
dmv 예에 따르면, 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>)
내 테스트의 첫 번째 애드혹은 2 애드혹가 계획 캐시를 요청하는 쿼리이었다, 실제 쿼리이었다. 그래서 그것은 분명히 발행되는 adhoc 질의와 다른 proc 유형 하에서 별도의 엔트리를 받았다. 플랜 핸들은 또한 다르며 플랜 핸들을 사용하여 추출 할 때 원래의 함수에 오브젝트 ID를 제공하는 반면, 임시 쿼리는 오브젝트 ID를 제공하지 않습니다.
2
예, rexem의 Tibor 링크 및 Andrew의 답변을 참조하십시오.
그러나 ... 간단한 테이블 값 함수는 외부 쿼리로 중첩/확장되지 않습니다. 보기처럼. 이다 And my answer (with links) here
이 유형 :
CREATE FUNC dbo.Foo()
RETURNS TABLE
AS
RETURN (SELECT ...)
GO
관련 문제
- 1. SQL Server 2008의 릴리안 날짜 함수
- 2. SQL Server 2008의 LPAD
- 3. SQL Server 2008의 검색
- 4. SQL Server 2008의 보안
- 5. SQL Server 2008의 SQL 인증
- 6. SQL Server 2008의 SQL Server 인증
- 7. SQL Server 2008의 알림 서비스
- 8. SQL Server 2008의 대칭 암호화
- 9. SQL Server 2008의 인코딩 문제
- 10. SQL Server 2008의 CLR에서 스레딩
- 11. SQL Server 2008의 병합 쿼리
- 12. SQL Server 2008의 사용 권한
- 13. SQL Server 2008의 데이터베이스 백업
- 14. SQL Server 2008의 저장소 배열
- 15. SQL Server 2008의 SID는 무엇입니까?
- 16. SQL Server 2008의 데이터웨어 하우징
- 17. SQL Server 2008의 Filestream 위치
- 18. SQL Server 2008의 열거 형?
- 19. SQL Server 2008의 코드 정렬?
- 20. SQL Server 2008의 비즈니스 로직
- 21. SQL Server 2008의 사용자 정의 순위 지정/분석 함수
- 22. SQL Server 2008과 SQL Server 2008의 고유 클라이언트의 차이점은 무엇입니까?
- 23. SQL Server 2000과 SQL Server 2008의 쿼리 성능
- 24. SQL Server CLR 함수
- 25. Sql Server 2008의 소수 구분 기호
- 26. SQL Server 2008의 PIVOT에 대한 업데이트
- 27. MS SQL Server 2008의 복제 가이드
- 28. Sql Server 2008의 계산 된 필드
- 29. SQL Server 2005/2008의 하위 스키마
- 30. ConnectionString 문제 - Windows 2008의 SQL Server 2008
를 참조하십시오 http://sqlblog.com/blogs/tibor_karaszi/archive/2007/06/14/are-execution-plans-for-functions- cached.aspx –