사용자 도구

사이트 도구


mssqlserver:performance

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
mssqlserver:performance [2018/08/28 15:12]
kwon37xi [실행 방법]
mssqlserver:performance [2018/08/30 08:58] (현재)
kwon37xi
줄 14: 줄 14:
 ===== Index 확인 ===== ===== Index 확인 =====
   * ''exec sp_helpindex [tablename]'' : 인덱스 확인   * ''exec sp_helpindex [tablename]'' : 인덱스 확인
 +
 +<code sql>
 +EXEC sys.sp_helpindex @objname = N'User' -- nvarchar(77)
 +</code>
 +
  
 ===== No Lock ===== ===== No Lock =====
 +
 ==== 왜 필요한가? ==== ==== 왜 필요한가? ====
   * SQL Server는 SELECT를 할 때 SHARED Lock을 건다.   * SQL Server는 SELECT를 할 때 SHARED Lock을 건다.
   * 이 상황에서는 다른 데서 SHARED Lock을 건 데이터는 읽을 수 있지만 UPDATE/INSERT/DELETE에 의해 EXCLUSIVE Lock이 걸리면 데이터를 읽지 못하고 SHARED Lock 확보시까지 대기한다.   * 이 상황에서는 다른 데서 SHARED Lock을 건 데이터는 읽을 수 있지만 UPDATE/INSERT/DELETE에 의해 EXCLUSIVE Lock이 걸리면 데이터를 읽지 못하고 SHARED Lock 확보시까지 대기한다.
-  * 또한 매우 실행시간이 긴 SELECT 문 실행시에 SHARED Lock이 걸려 있으면 UPDATE/INSERT/DELETE가 EXCLUSIVE Lock을 확보하지 못해서 CUD 작업이 느려다.+  * 또한 매우 실행 시간이 길고 폭넓은 데이터를 선택하는 SELECT 문 실행시에 SHARED Lock이 걸려 있으면 UPDATE/INSERT/DELETE가 EXCLUSIVE Lock을 확보하지 못해서 CUD 작업이 느려질 가능성이 있다.
   * 따라서 장시간 걸리고, 여러 행(row)을 탐색하는 SELECT 쿼리의 경우 ''WITH (NOLOCK)''으로 SHARED Lock 없이 쿼리를 수행한다.   * 따라서 장시간 걸리고, 여러 행(row)을 탐색하는 SELECT 쿼리의 경우 ''WITH (NOLOCK)''으로 SHARED Lock 없이 쿼리를 수행한다.
  
mssqlserver/performance.1535436759.txt.gz · 마지막으로 수정됨: 2018/08/28 15:12 저자 kwon37xi