2015-01-28 2 views
1

사실 :이해 푸른 SQL 성능

  • 1 푸른 SQL S0 인스턴스
  • 몇 테이블이 포함 된 그들 중 하나 ~ 8.6 백만 행과 1 PK

에 카운트 쿼리를 실행 이 테이블은 완료하는 데 약 30 분 (!) 걸립니다.

: 자원 사용량 모니터는 다음을 보여줍니다

Result in SQL Management Studio after returning the count on S1

이 푸른 포털 (새 버전)으로 상대 : S0에서 S1의 예를 업 스케일링

13분에 쿼리 시간을 감소 Azure DB resource utilization showing both queries on S0 and S1

질문 :

  1. 다른 사람이 간단한 COUNT()에 대해 rediculos로 13 분을 고려합니까?
  2. 두 번째 스크린 샷은 내 인스턴스가 다른 요청에 응답하지 않는 100 % 기간 동안입니까?
  3. 내 측정 항목이 S0 및 S1에서 모두 100 %로 제한되는 이유는 무엇입니까? (참조) "이 값은 100 %를 초과 할 수 있습니다 (미리보기의 값이 최대 100 개로 제한되어 있습니다).") 나는 S0가 150 % 정도처럼 느껴질 것이라고 기대합니다. 따옴표 붙은 진술은 사실입니다.

1.000 이상의 레코드가있는 데이터베이스 사용에 관한 경험에 관심이 있습니다. 나는 한 달에 22 ~ 55 유로의 S * 스케일링 된 Azure SQL이 어떻게 현재 업 스케일링 전략에 도움이되는지를 보지 못했다.

+0

"where"조건을 사용하고 있습니까? quey는 "테이블에서 셀 수 (*) 선택"또는 "테이블에서 셀 수 (*) 선택 조건"입니까? –

+0

아니요, 숫자가없는 곳 (*)입니다. – sprinter252

+0

인덱스 및 통계가 최신입니까? –

답변

2

Azure SQL 데이터베이스 버전은 기본 -> 표준 -> 프리미엄 수준 (CPU, IO, 메모리 및 기타 리소스 - https://msdn.microsoft.com/en-us/library/azure/dn741336.aspx 참조)에서 증가하는 수준의 DTU를 제공합니다. 쿼리가 이러한 리소스 차원에서 DTU (100 %)의 한도에 도달하면 해당 리소스 차원에서 이러한 리소스를 계속 수신하지만 (더 많지는 않음) 요청 완료시 대기 시간이 늘어날 수 있습니다. 위의 시나리오에서와 같이 쿼리가 DTU 한도 (S0는 10 DTU, S1은 20)에 도달했습니다. 이러한 메트릭을 동일한 그래프에 추가하거나 DMV sys.dm_db_resource_stats를 쿼리하여 개별 리소스 사용 백분율 (CPU, 데이터 IO 또는 로그 IO)을 볼 수 있습니다.

다음은 데이터베이스 성능 수준의 적절한 크기 조정에 대한 자세한 정보를 제공하는 블로그입니다. 당신이 860 만 개 행이 같은 구체적인 질문

1)으로 http://azure.microsoft.com/blog/2014/09/11/azure-sql-database-introduces-new-near-real-time-performance-metrics/

는 데이터베이스가 다시 카운트를 얻기 위해 인덱스 항목을 검사 할 필요가있다. 따라서 여기에서 버전의 IO 한도를 초과 할 수 있습니다.

2) DB에 대해 여러 개의 동시 쿼리를 실행하는 경우 하나의 요청이나 다른 요청을 무시하지 않도록 적절하게 예약됩니다. 그러나 사용 가능한 리소스 제한을 초과 할 것이기 때문에 모든 쿼리에 대해 대기 시간이 더 늘어날 수 있습니다.

3) 이전 웹/비즈니스 에디션의 경우 특정 제한이 없으며 실행될 수 있으므로 100 %를 초과하는 메트릭 값을 볼 수 있습니다 (S2 수준의 한계로 정규화 됨). 다른 고객과의 자원 공유 환경에서 새 버전의 경우 시스템에서 100 %를 초과하지 않습니다. 시스템이 해당 버전의 제한 사항의 100 %까지 리소스를 보장하기 때문입니다. 이는 웹/비즈니스 에디션과 달리 DB에 대해 예측 가능한 보장 된 리소스를 제공합니다. 동일한 머신에서 실행되는 다른 경쟁 고객 DB 작업량에 따라 다른 시간에 리소스를 거의 또는 거의 얻을 수 없습니다.

희망이 도움이됩니다. - Srini

+0

정보 주셔서 감사합니다. 나는 이미 그들 중 일부를 알고 있었다. 하지만 요점은 : S1 인스턴스에 대해 약 50 유로를 지불하면 IO (또는 기타) 문제없이 8 백만 행을 처리 할 것으로 가정합니다. 그 행렬은 현대의 RDBMS에서 우스꽝 스럽습니다. 그렇지 않습니까? 내가 틀렸다면 SQL Azure에 대한 요점은 무엇입니까? 의견을 바탕으로 한 정보를 제공 할 수 있습니까? – sprinter252