2014-01-16 2 views

답변

1

그것은 최초의 컴파일 된 버전을 사용을 사용하고

function prepareStoredProcedure (spName, arrParams) 
{ 
var cmd = Server.CreateObject("ADODB.Command") 
cmd.CommandType = adCmdStoredProc; 
cmd.ActiveConnection = Connection; 
cmd.CommandText = spName; 
cmd.Prepared = true; 

var params = []; 
for (var i=0; i<arrParams.length; i++) 
{ 
if (arrParams[i].Size) 
    params.push(cmd.CreateParameter(arrParams[i].Name, arrParams[i].Type, 1, arrParams[i].Size)); // Name, Type, Direction, Size 
else 
    params.push(cmd.CreateParameter(arrParams[i].Name, arrParams[i].Type, 1)); 

cmd.Parameters.Append(params[i]); 
} 

return cmd; 
} 

:

나는 여러 번 전화를받을 수있는 다음과 같은 기능을 가지고있다.

재사용 측면에서 다른 뉘앙스가 있습니다. 예를 들어 저장 프로 시저에 따라 SQL Server에서 캐시 된 쿼리 계획을 사용할 수 있습니다. 그러나 동적 SQL, 특정 유형의 논리 또는 대규모 데이터 변경이있는 경우 DB 엔진은 쿼리 계획을 다시 작성해야합니다.

그러나 저장 프로 시저 '컴파일'은 생성시 완료됩니다. 달리 지정하지 않으면 (here 참조) 다시 컴파일되지 않습니다.