2013-01-24 11 views
0

로컬로 호스팅되는 SQL 서버에 내 웹 응용 프로그램이 수행하는 첫 번째 쿼리가 매우 느리다는 사실을 알고 있습니다. 누구나 이것에 대한 경험이 있고 성능/대기 시간을 향상시키기 위해 내가 할 수있는 일을 알고 있습니까?coldFusion 및 SQL 상호 작용이 느린 초기 연결

활성 서버가 CF8을 사용하는 반면 CF9가있는 로컬 테스트 서버가 있습니다. 두 경우 모두 SQL은 동일한 시스템에 있으며 약간의 SQL 버전 차이가 있습니다 : 10.5 RTM v 10.0.5 SP3. (비록 프로덕션 서버가 다른 IP에서 다른 SQL 데이터베이스 9.0을 실행하고 있지만)

쿼리가 빠르지 만 초기 연결이 느린 것 같습니다. 어떤 것에 대한 아이디어라도 향상시킬 수 있습니까?

답변

0

지연은 대부분 실행 계획을 컴파일하고 작성하여 생성됩니다. 저장 프로 시저를 사용하는 것이 좋습니다.

+0

나는 스토어드 프로 시저에 대해 완전히 외국이다. 나는 그들을 백업 스크립트를 만드는 데 사용했습니다. coldfusion에서 쿼리를 호출 할 때 어떻게 활용할 수 있습니까? – Daniel

1

여기에도 같은 문제가 있습니다. 모든 단일 요청의 첫 번째 쿼리는 다음 쿼리보다 훨씬 오래 걸립니다.

상황을 설명하기 위해 SQL Server에 두 개의 테이블을 만들었습니다. tableA와 tableB의 두 테이블은 동일합니다. 하나는 다른 하나의 사본입니다. 우리는이 실행하면

는 :

<cfquery datasource="test" name="queryB"><!--- This query takes 104 milliseconds ---> 
    SELECT * FROM tableB WHERE id = 1 
</cfquery> 

<cfquery datasource="test" name="queryA"><!--- This query takes 3 milliseconds ---> 
    SELECT * FROM tableA WHERE id = 1 
</cfquery> 

당신이 볼 수 있듯이, : 나는 쿼리의 순서를 변경 되돌릴 경우

<cfquery datasource="test" name="queryA"><!--- This query takes 104 milliseconds ---> 
    SELECT * FROM tableA WHERE id = 1 
</cfquery> 

<cfquery datasource="test" name="queryB"><!--- This query takes 3 milliseconds ---> 
    SELECT * FROM tableB WHERE id = 1 
</cfquery> 

하지만를, 느린 쿼리는 여전히 첫 번째입니다 차이가 중요합니다.

쿼리는 매우 간단하며 기본 키와 10 개가 넘는 테이블을 쿼리합니다.

우리는 여기 ColdFusion에서 10 가지고 있지만, 그것은 또한 ColdFusion에서 9 MS SQL Server에 무슨 일이 일어나고 2008 년

0

내 생각 엔 첫 번째 연결 속도가 느린 이유는 연결이 처음 설정 될 때 그 점이다하고 있다는 것입니다 자격 증명이 확인됩니다. 초기 연결이 이루어진 후에는 후속 쿼리가 훨씬 빠릅니다. ColdFusion에서 모든 작업에 대해 데이터 소스에 대한 연결을 설정 -

나는 기본은 다음과 같이 설정되어 모르겠어요,하지만 더 조사해 할 가치가있을 수 있습니다.