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 데이터베이스 관리 인스턴스는 시간 내 주셔서 감사합니다

Azure Friday: Improve Azure SQL Database Performance with Automatic Tuning

안녕하세요 이것은 Seth Juarez입니다 이것은 다른 에피소드 azure 금요일

내가 여기 Velko을 사용 하 여 자동 필터 1 _ 자동 조정 합니다 알려 사람들을 약간의 기능에 대 한? >> 그래, 감사 합니다 Seth는 내가 필요 해입니다 내 이름은 Velko, 내가 프로그래머의 SQL azure 데이터베이스입니다 작업 하 고 이러한 지능형 데이터베이스 시나리오 및 오늘 데모를 조금 하고자 합니다

자동 조정에 대 한 비트입니다 >> 놀라운 기능, 우리 이야기 어떤 자동 튜닝에 대 한이 알고 싶어하는 사람들 하 고 다음 부분을 살펴보겠습니다 그 할 수 있는 방법을 참조 하십시오 >> 자동 튜닝 작업은 네, Azure SQL 데이터베이스 기능 또한 사용할 수 있는 부분적으로 2017 SQL Server는 자동으로 튜닝 프로그램 성능을 제공 합니다 관찰 하 여 기본적으로 작업 부하에서 발생 하는 [들리지 않음]을 최적화 란 무엇입니까 기회를 SQL Server 적용할 수 있습니다 >> 따라서 일반적으로 내가 볼 I 거기에 필요 하 고 몸에 직접 인덱스 추가 무엇이 든 해야 하기 때문에 무엇 인지 파악 합니다

지금을 말하는 것 것만 까 대 한 하면 자동으로? >> 예, 정확 하 게 >> 그래, 생각 하는 것을 확인 해야 합니다 >> 수 보여 바로 처음부터 시작 하겠습니다 데모를 표시 하는 좋은 계획을 찾는 시기 발생 하는 회귀 분석 계획 자동으로 수정 계획 아직입니다 가지고 있는 것 여기는 작은 응용 프로그램을 실행 중인 볼 수 있듯이 약 70 초 당 요청 수와 실제로 실행 이 간단한 쿼리 합니다

하지만이 테이블 아래에 SQL 데이터를 보낸 경우 특정 매개 변수를 사용 하 여 쿼리 계획 된 회귀 문제가 발생할 수 있습니다 SQL Server 기본적으로 가장 적합 하는 계획 이 단일 매개 변수에 대해서 다른 매개 변수 작동을 잘 합니다 이런 경우에 그렇게 하 고 이 계획은 캐시 되는 경우는 다른 요청 들의 성능 파티와 다른 매개 변수 regresses입니다 클릭 하 여 실제로 이 단추에 실제로 하는 일이 발생 합니다 캐시를 지우는 것 이 동일한 쿼리가 보내 드리죠 문제가 되는 매개 변수를 사용 하 여 하지만 그 후에 오고 다른 쿼리를 시작 합니다

회귀 분석을 사건에서는 설명 해 드리죠 문제가 있는 부분을 클릭 개수 표시 떨어지지만 요청 합니다 현재 백 엔드에 SQL Server 예측 이 새로운 계획 사용 하 여 비교 하면 초기 계획을 갖고 있던 이전 실행 이 쿼리 합니다 여기에서 볼 수 있듯이 고 몰라요 이전 계획은 실제로 성능 향상

자동으로 시작 새로운 계획을 강제로 따라서 더 이상 해야 절전 모드 해제 위쪽에 발생 하면 수정 같은 proplanner 회귀입니다 >> 이제 확인 했습니다 올바르게 이것을 이해 합니다 수행 되는 작업 이므로 쿼리를 실행할 때마다 계획을 생성 하 고 그런 다음 캐시는 속도 >> 그래

>> 하지만 다음 쿼리 약간 변경 될 수 있습니다 매개 변수를 바탕으로 하 고 캐시 된 쿼리 계획은 아닙니다 빨리 될 것입니다 >> 그래 >>는 이동 작업을 수행 하 고 쿼리를 확인 하는 것입니다 들어오는, 내 현금 말씀 계획 약간 변경 해야 합니다 비트가 그 거 자동으로 조정 합니다

>> 네, 그렇습니다 어떤 의미에서 기본적으로 [INAUDIBLE] 여러 계획을 선택합니다 >> Uh-huh >> 및 에 대 한 계획 중 하나는 대부분의 실행입니다 하지만이 하나의 문제를 일으키는 매개 변수 계획 캐시 된 가져옵니다 경우 에 대 한 회귀 분석 계획 다른 모든 실행 발생 합니다

기본적으로 있 고 여기에서 전략은 고 좋은 계획은 첫 번째 합니다 >>는 건가요 해야 합니까 데이터베이스를 설정 하거나 원인은이 정당한 하락 사람에 SQL을 사용 하 고 있습니까? >>만 있게 해야 그 아래 실제로 여기 고 저는 TC 파일 구문에 대 한 이 변형 사용 자동 조정 옵션입니다 다른 옵션에는 또한 조정 자동 누락 된 인덱스를 만드는 것 처럼 하 고 중복 된 인덱스를 삭제 하 고 내가 어떻게 신속 하 게 소개 하려고 하면 이러한 작업을 사용 하도록 설정 Azure 포탈 뿐입니다 >> 시작 하겠습니다 >> 지금 이제 Azure 포털에 자신 단일 데이터베이스를 선택 합니다

여기에 데이터베이스와 타일에 있는 기능 목록 자동 조정 클릭 하 고 그런 다음 모든 옵션 표시 Azure에서 제공 하 는입니다 그 정보는 좋은 계획을 강제로 2017 SQL Server에서 사용할 수 있습니다 인덱스를 만드는 동안 및 복제를 삭제 하 고 사용 되지 않는 인덱스를 사용할 수 SQL Azure 데이터베이스에 [들리지 않음] 오케이 자동 조정을 사용할 수 있습니다 전체를 선택 하 여 데이터베이스 수준 옵션입니다 상속할 수 있도록 서버에서 설정 다양 한 데이터베이스를가지고 하기만 하는 서버에서 구성 서버 수준입니다

>> 스마트 >> 및 모든 데이터베이스를 바로 상속 또는 수 있습니다 Azure 기본값을 상속 합니다 기본적으로 드라이브 들의 우리가 생각 하는 기본값은 강 현재 서비스 하 고 일반적으로 데이터베이스 이러한 높은 수준의 선택할 때 이동 데이터베이스 옵션 및 명시적으로 선택 이러한 옵션

것을 말합니다 명시적으로 하는 방법 내가 있기 때문에 사용 아마 중복 인덱스 무슨 이유 인지에 대해서 다른 두 상속 하려는 경우 Azure 기본값에서 사용 되는 옵션입니다 난 단지이 옵션을 선택, 적용을 적중 합니다 오른쪽 측면에서 현재 설정 표시 되 찾을 수 없습니다 현재, azure 기본값 Azure SQL 데이터베이스에 대 한 힘은 계획 사용 및 만들기 컴퓨터도 사용할 수 있습니다 >> 표시를 하므로 각각에 살펴보겠습니다

지키는, 내가 하는 것 중 하나 데이터베이스를 이전에 사용한 고찰 하지는 않지만 오랫동안에서 계획입니다 쿼리 전송 하려고 했는데요, 한 마법 가지 동작이 발생 합니다 따라서 매번 쿼리를 보내면 계획을 생성 되 고 캐시? >> 그래 >>는 캐시 된 계획은 하 고 매개 변수가 없으면 고정? 단지에 따라 달라 지므로 데이터는 올바른지? >> 예 >> 지금 매개 변수를 보낼 경우 계획을 변경 하는 존재 심각 하 게 많나요 하면 불러 재발? >> 그래

>>는 문과 약간 느립니다 그렇다면은 무엇과 하에서 이루어지는 표지 때 그 변경 하 시겠습니까? >> 무슨 이므로 를 쿼리 하는 경우 SQL Server 알아 통계에 따라 적절 한 무엇입니까 계획을 생성 합니다 앞서 언급 했 듯이, 고 하나의 매개 변수를 사용 하 여 보내는 경우 에 대 한 통계 해당 매개 변수가 다를 수 있습니다 보다 다른 모든 그런 다음 다른 계획이 작성 되 고 그 후이 계획은 캐시, SQL Server 말 이미이 계획 캐시 그렇다면 왜 안 사용 계획? 및 기타 매개 변수를 계획을 잘 수 없습니다

이전에 부딪히게 되는 것을 실행이 경우에 이동 해야 합니다 Dmv를 알아내야 합니다 이것은 좋은 계획 잘못 된 계획입니다 다음을 기반으로 결정 이 좋은 계획 하는 방법 [INAUDIBLE] 내 모든 >> 표시, 이전에 지금이 고통을 포인트입니다 실제로 이동 해야 하 고 아니오,이 계획을 사용 합니다

[INAUDIBLE]이이 계획을 사용 합니다 >> 예, 대부분의 SQL Server 경우는 좋은 계획을 선택 합니다 이러한 특정 하지만 때문에 경우 데이터 보안을 유지 하 고 아래에 몇 가지 다른 이유 이 계획의 재발 발생할 수 있습니다 문제가 되 고 있습니다 갑자기 발생할 수 있습니다 깨어나 야 합니다

발생 하면 대부분의 경우에서 깨울 수 있습니다 위로 3 오전에 방문 하 고 계획을 수정 합니다 없는 계획 수정 알고 있는 경우에 거래의 큰 Dmv를 이해 그를 신용 하는 방법 및 찾을 수 이 정보입니다 있지만 그렇게 이 모든 것이 사라집니다

이 자동으로 수행 합니다 >>를 멋진 다른 두 가지는 인덱스를 만들 색인 및 드롭 인덱스입니다 것입니다 이것은 무엇입니까 이 퀘스트 할 때 자동으로 수행 하 에 있는 경우 인덱스? 말 그대로 야 만들고 인덱스 적용? >> 말 그대로 >> 보여 줍니다 해 드리죠

>> 확인 합니다 >>를 설정 하는 자동 조정 모든이 작업 시작 백 엔드에 발생 합니다 여기에 스크롤할 수 고 아래로 조금 하 고 이제 선택 성능 권장 사항입니다 모두를 추적할 수는 여기에서 즉 자동 권장 사항 조정을 적용 합니다 여기에서 볼 수 있듯이 고 현재는 대부분 보류 중인 상태입니다

자동 조정 처리 사용자 작업 이므로 하지 않는 것 작업 하는 경우 데이터베이스는 아래 높은 사용률입니다 기다리는 지금 적용 하는 적절 한 시기 사용자의 작업 부하 영향을 받지 않습니다 또한 모든 즉 자동 작업 가 조정 되어 비 됩니다 따라서, 인덱스를 만들 경우에 인덱스를 자동으로 생성 됩니다 이것은 데이터베이스에 작업을 차단 하지 않습니다

그런 일반적인 설정 해야 하는 경우 특정 열에 대해 인덱스 및 해당 열을 삭제 하려고 합니다 차단 됩니다 SQL Server 알려 이 인덱스에 이미 삭제 하려는 경우 인덱스의 첫 번째, 및 그런 다음이 열을 삭제할 수 있습니다 그러나 만든 자동 조정 이 색인 후 색인 것 으로 이동 작업 패스를 줍니다 한 추가적인 중요 한 여기서는, 및 어떻게 보여 수의 적용 권장 사항은 다음과 같습니다

확인 하 고 이제는 성공적인 상태입니다 이 모든 것을 볼 수 있습니다 정보를 알려,이 봐, 이 어떻게 되었습니까 정보를 도와 줘, 데이터베이스를 어떻게 향상 않는 것? 감소 d2 사용자가이 많이 이것은 수 향상 된 쿼리 수입니다 약간의 쿼리 이 인덱스 때문에 이전 버전으로 돌아가면 인덱스의 크기입니다

가이 말하는 모든 인가요 자동 조정 작업 확인 후 적용 되 고 있습니다 베이스 라인을 유지할 것 레이스, 권장 적용 하 고 확인 하 고는 권장 정말 멋 있 었 어입니다 좋은 사람이 되었으면 하 고 이 보고서를 제공 합니다 이렇게 이야기 하면, 이것은 얻을 수 있는 개선 따라서 자동 조정 합니다 여기에 권장 되는 에 대 한 좋은 이유가 없습니다

데이터베이스 수 있습니다 자동으로 사라집니다 지도록 하 고 부른 와 함께 향상 됨 자동 조정 합니다 >>만 수행 하 고 있는 무엇에 영향을 주지 하는 방법의, 때문에 수행 되 고 있는 경우 높은 사용률 당신은 가능성이 높습니다 에 검은 금요일입니다 에 반영 되지 이러한 모든 것 드립니다

>> 연기는 물론 알아 볼 작업을 하지만, 기회를 나중을 위해 연기 >> 지금이 말 그대로 전자 회계사에 대 한 것에 SQL 데이터베이스에서 SQL 데이터 대기 중임을 돕습니다 항상 번호 말씀 몇 가지 권장 사항이 있습니다 계속 진행을 하 고 대신해 드립니다 확인 하 게 됩니다 다음 하면 어떻게 향상 될

>> 정확 하 게 >>, 개선 하지 않은 것과 뭐, 알고 계십니까 단지 흘러갈 거 야 >> 예, 정확 하 게 >>, 이렇게 하 고 가 있는 특정 왜곡 하는 우리가 해야 할 또는 단지 모든 것은? >> 모든 전부를 Azure에서 사용할 수 있습니다 >>를 놀라운, 그렇게 여기서 사람들이 하 게 이동할 수 있습니까 이 대 한 자세한 내용을 보려면 자세한 내용을 원하면? >> 좀 배우고와 링크 또한 여기에 게시 나에 게 접근할 수 있습니다

의견에 확실히 내가 곧 도착 회신 하는 경우 질문이 있습니다 >>, 이것은 놀라운입니다 해야 우리가 전에 Neanderthals, 거기에 이동 하 고 우리 고유 인덱스를 만듭니다 >> [웃음] >>이 쿼리 계획을 살펴보고 성능 등입니다 에 대 한 많은 감사합니다

우리와 함께 몇 시간을 소비합니다 우리 한 된 학습에 대 한 자동 조정을 수행 하는 방법 SQL Azure 데이터베이스를 Azure 금요일에 [음악]