Automatic Tuning with Azure SQL Database Managed Instance

안녕하세요 저는 여기 SQL Server Engineering 팀의 Bob Ward입니다

자동으로 간단한 데모를 보여 드리겠습니다 Azure SQL 데이터베이스 관리 인스턴스로 이번에는 피처 튜닝 나는 실제로 SQL 서버 youtube 채널에서 몇 가지 다른 데모와 비디오를 만들었습니다 Windows의 SQL 서버 및 Linux의 SQL 서버에 대한 자동 조정 Azure SQL 데이터베이스는 Windows 및 Linux에서 SQL 서버와 거의 100 % 호환됩니다 나는 그 환경에서 데이터베이스 백업을 가져 와서 그것을 하늘빛으로 직접 복원 할 수있다 SQL 데이터베이스 관리 인스턴스

이것은 새로운 Azure 서비스의 호환성 약속 중 하나입니다 당신은 내 앞에서 볼 수 있습니다이 경우에는 백업을 실제로 복원하는 방법에 대한 지침을 웹 페이지에서 얻을 수 있습니다 세계적인 수입업자 표준 백업은 내가 자동 튜닝을위한 데모를 위해 실제로 사용할 것입니다 데모를 위해 사용해온 실제 백업 파일을 시연 해 왔습니다

자동 튜닝을 사용하는 방법은 여기에서 SQL 서버 관리 스튜디오입니다 필자는 하늘 데이터베이스 관리 인스턴스에 연결되어 있다고 썼습니다 웹 페이지의 지시 사항에 따라 복사 내 넓은 세계 가져 오기 백업 파일을 푸른 물방울 컨테이너 컨테이너에서 복원을하고 있는데 성공했습니다 나는 지금 SQL 작업 스튜디오로보고있다 나는 과거에 사용했던 것과 같은 스크립트 세트를 가지고있다

리눅스에서 SQL 서버는 자동 튜닝을 보여줍니다 해당 도구가 Azure Managed Intance에서 direclty를 작동시키지 않기 때문에 Windows 성능 모니터를 사용할 수 없습니다 repos에서 동일한 스크립트 세트를 사용할 수 있으므로 괜찮습니다 우리가 리눅스에서 SQL 서버를 위해 Azure가 관리하는 인스턴스를 보여주기 위해 자동 튜닝을 한 것입니다 스크립트에서 해당 비디오를 본 경우 wideworldimporters 샘플을 가져 와서 저장 프로 시저를 추가하도록 수정했습니다 쿼리 계획 회귀를 나타내는 정수 매개 변수 사용 지금 내가 윈도우 성능 모니터를 가지고 있지 않기 때문에 내가 할 수있는 일은 실제로 SQL 서버 데이터를 수집 할 스크립트를 실행하는 것이다

초당 일괄 요청은 글로벌 임시 임시 다른 쿼리를 실행하여 반복하고 결과를보고 워크로드 처리량을 관찰 할 수 있습니다 실제로 초기화 스크립트를 실행할 것입니다 그리고이 스크립트의 끝에서 어떻게이 스크립트와 github repo를 얻을 수 있는지 보여 드리겠습니다 이제 이걸 실행할거야 먼저 환경을 초기화하고이 보고서 절차 인 작업 부하를 시작합니다

그런 다음이 스크립트를 실행하여이 글로벌 임시 데이터에 대한 일괄 요청 데이터를 수집합니다 표 이제 배치 요청 SQL 스크립트를 사용하여 정상적인 성능을 관찰하고 관찰합니다 시간이 지남에 따라 내 보고서 작업량을보고 클릭하고 시간이 지남에 따라 일련의 데이터를 얻으면 새로운 차트 기능과 SQLOperations Studio를 사용하고 있습니다 시간과 가치의 카운터를보고 나는 여기로 가서 차트 형식으로 볼 수 있습니다

이제 시계열을 보면이 보고서 절차에 대해 가지고있는 워크로드 처리량의 표준 작업 종류를 나타냅니다 쿼리 계획 회귀 문제를 시뮬레이션 할 회귀 스크립트를 실행하십시오 다시 한 번 일괄 요청으로 돌아가서이 작업 부하에서 발생하는 회귀 문제를 관찰했습니다 여기를 몇 번 클릭하여 결과를 얻으십시오 여기에 우리의 시계열로 보일 것입니다

그리고 당신은 성능 저하를 볼 수 있습니다 정상적인 작업량이 좋아졌고 이제 성능 저하 문제가 있습니다 지금은 기본적으로 SQL 서버 창과 쿼리 스토어가 활성화되어있는 경우 리눅스처럼 볼 수있는 권장 DMV를 찾아 볼 수 있습니다 무슨 일이 벌어지고 있는지, 여기서 평균 CPU 시간 실제로 시간이 지남에 따라 증가했습니다 이전보다 4 ~ 5 배 더 하지만 qiery 계획은 동일한 쿼리와 다르므로 이전 계획으로 되돌리기 위해 스크립트 열의 모양을 사용할 수 있습니다 자동 튜닝을 활성화하면 내 작업 부하를 멈추게하는 것처럼 보일 것입니다

내 수집가를 그만둬 라 내가 할 일은 SQL에서 auto tune이라는 스크립트를 실행할 수 있다는 것입니다 쿼리 저장소를 지우는 프로 시저를 복원하여 프로 시저 캐시를 지 웁니다 자동 튜닝을 켜고 그래서 다시 내 작업량을 실사합시다 내 수집가를 걷어 찬다

우리는 시간 경과에 따라 그 성능을 다시 관찰 할 수있다 저장 프로 시저처럼 보인다 그리고 시계열 차트를 클릭하면 다시 볼 수있게됩니다 그래서 이것이 내 작업량 인 것처럼 느껴질 수 있습니다 회귀를 다시 실행 시키십시오

돌아가서 워크로드 변경 사항을 관찰하면 회귀로 인해 감소한 수치를 볼 수도 있습니다 자동 튜닝이 활성화되어 있기 때문에 찾을 수 있습니다 퍼포먼스는 조금 더 빨라진 곳으로 돌아가므로 차트처럼 보이는 것을 보자 여기서 워크로드 성능을 확인할 수 있습니다 그것은 쇠퇴했다

작은 실수가 있었지만 대부분이 파기되었습니다 쿼리 계획 회귀 문제로 인해 성능이 이전 수준으로 돌아 왔습니다 추천을 보면 여기를 클릭 할 수 있습니다 쿼리 계획 회귀 문제가 있음을 발견했습니다 평균 CPU 시간이 더 나 빠졌지 만 상태 전이가 마지막 계획 인 것을 알 수 있습니다

이것은 매우 비슷하다 SQL 서버 윈도우와 SQL 서버 리눅스에서 일종의 행동 그래서 저는 방금 Windows 또는 Linux 환경에서 SQL 서버로부터 백업을 복원 할 수있는 능력을 보여주었습니다 Azure 블로그 데이터베이스에 저장 한 후 Azure SQL 데이터베이스 관리 인스턴스로 직접 복원 그런 다음 과거에 나에게 보여 줬던 동일한 자동 튜닝 데모를 실행합니다 Windows 또는 Linux의 SQL 서버용 방금 전에 보여 줬던 데모 용 스크립트를 얻으려면 SQL 서버의 스크립트를 사용하십시오 Linux 자동 튜닝 데모 여기 내 github bobsql repo에서 사용할 수 있습니다 이 데모를 즐겁게 해주시길 바랍니다

이것은 Windows, Linux 및 Windows 환경에서 SQL 서버의 SQL 서버 자동 조정 기능을 보여줍니다 Azure SQL 데이터베이스 관리 인스턴스는 시간 내 주셔서 감사합니다