2017-04-10 3 views
0

우리는 Entity Framework 코드 첫 마이그레이션을 사용하여 SQL Azure 데이터베이스 마이그레이션을 관리 할 웹 도구 (C# WebAPI)를 만들었습니다.EF 코드 첫 마이그레이션, SQL Azure에서 관리자 계정을 사용하지 않을 때의 성능 문제

기본적으로 데이터베이스를 만들 때 데이터베이스 당 로그인과 사용자 계정도 만듭니다.

이러한 계정은 db_datareader 및 db_datawriter 권한을 갖습니다.

웹 응용 프로그램의 계정을 사용하여 데이터베이스에 연결하여 현재 마이그레이션을 수행하고 보류중인 마이그레이션이있는 경우 해당 계정을 적용합니다.

이 작업은 매번 업데이트를 적용하지 않고 약 10 초 정도 걸립니다.

대신 Azure에서 SQL 서버를 설정할 때 연관된 admin 계정을 사용하면 시간이 1 초 미만으로 줄어 듭니다.

필자는 성능 저하를 가져 오는 일종의 허가가 있어야한다는 결론에 도달했습니다.

db_ddladmin 역할을 설명했습니다. 성공한 경우 here을 추가했습니다.

우리는 보류중인 마이그레이션을 얻으려면 Entity Framework 마이그레이션에서 DbMigrator 클래스를 사용합니다.

+0

제가 그다지 문제가되지 않을 것이라고 생각합니다. 스크립트를 다시 실행하고'sys.dm_exec_requests'를 사용하여 데이터베이스에서 무슨 일이 일어나는지보십시오 dmv – TheGameiswar

답변

0

좀 더 조사한 결과, 문제의 해결책은 master 데이터베이스에도 sql 사용자를 생성한다는 것입니다.

데이터베이스에 로그인과 해당 사용자 만 작성하기 전에. 이 문서에 따르면 post SQL Azure는 기본 데이터베이스를 지원하지 않으므로 기본 권한이 없으므로 master 데이터베이스가 기본값입니다.

사용자를 master 데이터베이스에 추가하면 "성능"문제가 해결됩니다.