2009-09-05 3 views
4

나는 DateTime.NowGETDATE()는 DateTime.Now만큼 비쌉니까?

는 SQL 2005/2008 고가의 GETDATE()가 (here에서) 매우 비싼 호출이 들었습니다? 저장 프로 시저에서 여러 번 사용하면 변수에 캐시 할 수 있습니까?

+2

"나는 DateTime.Now라고 들었습니다"라고 들었던 곳에서 우리와 함께 나눌 수 있습니까? –

+0

아마도이 최근의 질문에서 : http://stackoverflow.com/questions/1381370/hidden-boxing-in-the-bcl – adrianbanks

+2

당신이 그것을 많이 부르면 그것은 비싸다. 애드리안 뱅크스 (adrianbanks)가 지적한 그 질문은 datetime.now 100 만 번을 호출하는 데 약 500 밀리 초가 걸린다는 것을 보여줍니다. 어느 쪽이 정수를 증가 시키거나, 몇 개의 문자열을 연결하는 것과 비교하면 꽤 느립니다 (나는 그것을 테스트했습니다). 그러나 여전히 그렇게 느리지는 않습니다. 몇 시간 동안 중요한 코드 조각에서 datetime.now를 몇 백만 번 호출 할 계획이 아니라면 아마 중요하지 않을 것입니다. – Kibbee

답변

6

비싸지 않다. OS에서 바로 나온다.

어쨌든 캐시 할 것입니다. 여러 문장이있는 경우 별개의 호출에 따라 다를 수 있습니다. 여러 개의 삽입이 있다고 가정하면 값이 테이블간에 상호 연관되기를 원할 것입니다.

SELECT에서 사용하는 경우 출력용으로 보통 한 번만 평가됩니다.

+0

+1 "관련 테이블 간" – TheVillageIdiot

+1

감사합니다. 제가 오늘 물어봐도 될까요? – gbn

+0

예! 당연하지! :-) –

관련 문제