2010-12-29 3 views
0

저장 프로 시저가 있습니다.SQL Server 저장 프로 시저 성능 도움말을 원합니다.

name  : sp_select 
parameters : @tablename nvarchar(max), @where nvarchar(max) 

대략 있습니다. 20 개의 테이블.

이것은 모든 테이블에서 데이터를 선택하는 단일 프로 시저입니다.

이제이 프로 시저를 여러 번 실행하면 웹 성능에 영향을 줄 수 있습니까?

plz ...

+2

더 많은 코드 표시 - 실제 SQL 쿼리 작성 및 호출 방법. –

+2

솔직히 이것은 끔찍한 생각입니다. 모든 것을하기 위해 하나의 마법 sp가 필요하지 않은 코드를 작성하십시오. BTW 당신은 ​​SP와 함께 저장된 proc를 시작해서는 안됩니다, 시스템은 먼저 시스템 proc에 대한 looing하기 전에 찾습니다. – HLGEM

+0

@HLGEM의 설명을 명확히하기 위해. 이것이 일어나게하는 것은'sp_' 접두사입니다. 나는 이것이 무의미한 생각이라고 생각한다. –

답변

2

사용하는 테이블 및 기준에 따라 달라집니다. 나는. 대용량 테이블에서 테이블 스캔을 수행하면 문제가 발생할 수 있지만 인덱스를 사용하는 작은 쿼리는 정밀해야합니다.

왜 일반 쿼리가 아닌 SP를 사용합니까? 매우 이상한 일을하고 있으며 SQL 인젝션 공격에 노출 될 수 있습니다.

1

웹 요청 수에 따라 다릅니다.

사이트에 단일 사용자가 있고 20 개의 테이블을 치는 데는 시간이 걸리지 만 중요하지는 않습니다. 테이블이 너무 크지 않고 인덱스가 없다고 가정합니다.

사용자 수가 증가함에 따라 리소스에 대한 잠금 및 액세스에 문제가 발생할 수 있습니다.

모든 웹 요청마다 20 개의 테이블에 액세스해야하는 경우 디자인에 문제가있을 수 있습니다.

1

간단한 대답은 예입니다. 그렇지만 꼭 할 필요는 없습니다.

그러나 많은 요인에 따라 달라은 :

  • 저장 프로 시저가 호출됩니다 얼마나 자주.
  • 각 테이블에있는 레코드 수.
  • 각 쿼리에서 반환하는 레코드 및 열 수.
  • 실제 쿼리가 어떻게 호출되는지 (즉, SQL Server에서 쿼리 계획을 빌드 할 수 있음).

그러나 저장 프로 시저의 선언에 따라 일부 사용자의 경우에도 성능 문제가 두려워집니다.