---
title: "클라우드 기반 SQL Azure 데이터베이스에 DatabaseSpy를 연결하는 방법"
date: "2010-07-01"
tags: 
  - "database-tool"
  - "databasespy"
  - "sql-server"
  - "tech-ed"
description: DatabaseSpy를 SQL Azure 데이터베이스에 연결하고, 데이터베이스 마이그레이션을 관리하며, 클라우드 데이터베이스 통합 과정에서 발생하는 일반적인 문제들을 해결하는 방법을 알아보세요.
---
Status: #blog

Tags:  #database-tool #databasespy #sql-server #tech-ed

Categories: [Altova](/blog/ko/category/altova.md) 
# 클라우드 기반 SQL Azure 데이터베이스에 DatabaseSpy를 연결하는 방법

뉴올리언스에서 열린 Tech-Ed 컨퍼런스에서 6월에는 마이크로소프트의 클라우드 기반 SQL Azure 데이터베이스를 실제 운영 환경에 도입하는 데 도움이 되는 팁과 기술들이 주요 주제로 다루어졌습니다. SQL Azure는 마이크로소프트 SQL Server 기술을 기반으로 구축되었으며, 마이크로소프트 클라우드에서 제공하는 고가용성 및 확장성을 갖춘 데이터베이스 서비스를 제공하도록 설계되었습니다. SQL Azure에 데이터베이스를 배포하는 개발자는 관계형 데이터베이스 소프트웨어를 설치, 설정, 패치 또는 관리할 필요 없이, 자신의 데이터베이스 구조와 내용만 관리하면 됩니다. 자동적인 중복 처리 및 오류 복구 기능이 내장되어 있으며, 별도의 물리적인 관리 작업은 필요하지 않습니다. 

[DatabaseSpy](https://www.altova.com/ko/databasespy.html) 및 [다른 Altova 도구](https://www.altova.com/ko/solutions/database-tools.html)를 사용하여 수동으로 연결 문자열을 구성하고, SQL Server 구문 및 데이터 유형을 활용하여 SQL Azure 데이터베이스에 연결함으로써 일반적인 데이터베이스 개발 및 유지 관리 작업을 수행할 수 있습니다. 이 블로그 게시물에서는 DatabaseSpy를 사용하여 SQL Azure 데이터베이스에 연결하는 방법을 설명하고, 기존 데이터베이스를 클라우드로 이전하는 과정에서 수행할 수 있는 몇 가지 일반적인 작업을 예시로 보여줍니다. 이러한 단계를 직접 따라하려면 SQL Azure 계정이 필요하거나, SQL Azure 계정 소유자가 생성한 로그인 정보(아이디 및 비밀번호)가 필요합니다. SQL Azure 계정을 설정하는 방법에 대한 자세한 내용은 Microsoft 웹사이트를 방문하십시오 [SQL Azure 홈페이지](http://msdn.microsoft.com/en-us/azure/sqlazure/default.aspx). 또한, "[SQL Server Native Client 10.0](http://msdn.microsoft.com/en-us/library/ms131321.aspx) (또는 그 이후 버전)"을 설치해야 합니다. SQL Azure는 로컬 SQL Server 데이터베이스와 완전히 동일하게 작동하지 않으므로, Altova SQL Server 연결 마법사를 사용할 수 없습니다. 대신 ODBC 연결을 사용하겠습니다. 

[![DatabaseSpy ODBC 연결 대화 상자](https://lh5.ggpht.com/_REdrfeVqYdU/TCufLyT6UKI/AAAAAAAAAKI/2GXVaQshqsM/tn23_01_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy ODBC Connection Dialog")](http://lh6.ggpht.com/_REdrfeVqYdU/TCufLuJMxEI/AAAAAAAAAKE/s2TpUrv90uA/s1600-h/tn23_01%5B4%5D.gif) 

새로운 연결 문자열을 만드는 과정의 모든 세부 사항을 여기서는 설명하지 않겠습니다. 위에 표시된 대화 상자에 기존 연결 문자열을 복사하여 붙여넣을 수 있습니다.

SQL Azure에 처음 연결하면, DatabaseSpy 프로젝트 파일이 연결 설정, 자주 사용하는 SQL 스크립트, 데이터베이스 디자인 파일, 그리고 데이터베이스 비교 결과를 하나의 편리한 묶음으로 저장할 수 있습니다. 이렇게 저장된 프로젝트는 나중에 쉽게 다시 불러와 사용할 수 있습니다. 아래 스크린샷은 MySQL 환경의 Sakila 데이터베이스와 SQL Azure 클라우드 환경의 Sakila 데이터베이스를 동시에 연결한 새로운 DatabaseSpy 프로젝트를 보여줍니다. 

[![데이터베이스 스파이 프로젝트 도우미 창](https://lh5.ggpht.com/_REdrfeVqYdU/TCufMjbPtjI/AAAAAAAAAKQ/fS_AUAY_9Z8/Compare%201_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Project Helper Window")](http://lh5.ggpht.com/_REdrfeVqYdU/TCufMdJkgTI/AAAAAAAAAKM/_QSKYzv0bec/s1600-h/Compare%201%5B4%5D.gif) 

Microsoft는 사용자들이 기존 데이터베이스를 SQL Azure 플랫폼으로 이전하는 데 도움이 되는 다양한 변환 도구를 제공합니다. 저희는 Microsoft의 [SQL Server 마이그레이션 어시스턴트 for MySQL](http://www.microsoft.com/downloads/details.aspx?FamilyID=0e6168b0-2d0c-4076-96c2-60bd25294a8e&displaylang=en)을 사용하여 로컬 MySQL Sakila 샘플 데이터베이스를 SQL Azure 계정으로 변환했습니다. DatabaseSpy는 사용자가 동시에 여러 연결을 열 수 있도록 지원하며, 심지어 서로 다른 유형의 데이터베이스에도 연결할 수 있습니다. DatabaseSpy의 데이터베이스 비교 기능은 Sakila 데이터베이스 변환 결과를 확인하는 데 이상적인 도구입니다. 먼저 데이터베이스 스키마 비교 기능을 열고, 비교의 왼쪽 부분에 MySQL 데이터베이스에서 몇 개의 테이블을 선택합니다. 

[![데이터베이스 스파이 비교 선택 대화 상자](https://lh6.ggpht.com/_REdrfeVqYdU/TCufNE4eOHI/AAAAAAAAAKY/pgXiSLJ_wXA/Compare%202_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Comparison Selection Dialog")](http://lh4.ggpht.com/_REdrfeVqYdU/TCufM6yZIQI/AAAAAAAAAKU/Btk68j9iQDY/s1600-h/Compare%202%5B4%5D.gif) 

SQL Azure 버전에서 해당 테이블을 선택하면, 선택된 테이블들이 데이터베이스 스키마 비교 창에 표시됩니다. 

[![DatabaseSpy 스키마 비교 기능](https://lh4.ggpht.com/_REdrfeVqYdU/TCufNyt1dMI/AAAAAAAAAKg/S2qbtTidi5I/Compare%203_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Schema Comparison")](http://lh4.ggpht.com/_REdrfeVqYdU/TCufNixS44I/AAAAAAAAAKc/4JElxf6ZDSY/s1600-h/Compare%203%5B4%5D.gif) 

화면 왼쪽 상단에 있는 녹색 "비교" 버튼을 클릭하면, DatabaseSpy는 데이터베이스 구조를 비교하고, 차이점을 강조 표시하며, 메시지 창에 요약 정보를 생성합니다. 

[![DatabaseSpy를 이용한 스키마 비교 및 차이점 분석](https://lh4.ggpht.com/_REdrfeVqYdU/TCufPGxojBI/AAAAAAAAAKo/laurJr68vX8/Compare%204_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Schema Comparison with Differences")](http://lh3.ggpht.com/_REdrfeVqYdU/TCufOBsbJrI/AAAAAAAAAKk/AYlEquPw-lQ/s1600-h/Compare%204%5B4%5D.gif) 

일부 차이점은 데이터베이스마다 다른 데이터 유형 정의를 나타냅니다. 예를 들어, MySQL의 "unsigned small int" 데이터 유형은 SQL Server에서 정확히 동일한 유형이 없기 때문에, 변환 도구는 "film" 테이블의 "film_id" 열에 "int" 데이터 유형을 사용했습니다. 또한, MySQL에서 "release_year" 열에 할당된 "year" 데이터 유형은 SQL Azure에서 "smallint"로 변환되었습니다. 이렇게 하면 SQL Azure 버전의 데이터베이스가 더 미래 지향적으로 만들어질 것으로 예상됩니다. 왜냐하면 MySQL에서 "year" 데이터 유형의 최대값이 2155인 반면, SQL Azure에서는 32,767까지의 연도를 지원할 수 있기 때문입니다. 두 데이터베이스에 포함된 데이터를 비교하려면, 오른쪽 클릭 메뉴에서 선택을 통해 선택한 테이블을 새 데이터 비교 창에서 열어 확인할 수 있습니다. 

[![데이터베이스 스파이 비교 기능의 컨텍스트 메뉴](https://lh3.ggpht.com/_REdrfeVqYdU/TCufP3dYyYI/AAAAAAAAAKw/AgpXSG9shps/Compare%205_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Comparison Context Menu")](http://lh6.ggpht.com/_REdrfeVqYdU/TCufPiZEFaI/AAAAAAAAAKs/hYOu8AvEs0c/s1600-h/Compare%205%5B4%5D.gif) 

데이터 비교 결과, 테이블의 내용이 서로 동일하지 않음을 알 수 있습니다. 

[![데이터베이스 스파이 콘텐츠 비교 분석](https://lh3.ggpht.com/_REdrfeVqYdU/TCufQj2pQTI/AAAAAAAAAK4/iedHL3kDohM/Compare%206_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Content Comparison")](http://lh3.ggpht.com/_REdrfeVqYdU/TCufQOmH8jI/AAAAAAAAAK0/WOs9sgJRIxw/s1600-h/Compare%206%5B4%5D.gif) 

결과 창을 열면, 설명 항목이 제대로 이전되지 않았음을 확인할 수 있습니다. 

[![데이터베이스 스파이 콘텐츠 비교 결과](https://lh6.ggpht.com/_REdrfeVqYdU/TCufRZY5fYI/AAAAAAAAALA/cIbfxoR8n8M/Compare%206a_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Content Comparison with Results")](http://lh4.ggpht.com/_REdrfeVqYdU/TCufQ3sdyUI/AAAAAAAAAK8/wo8YQH1GPPs/s1600-h/Compare%206a%5B4%5D.gif) 

데이터베이스 스키마 비교 창을 살펴보면, 설명(description) 열의 길이가 0으로 설정되어 있음을 알 수 있습니다. 이는 결과 창에서 MySQL의 설명 열에서 SQL Azure의 설명 열로 향하는 빨간색 화살표를 설명하는 부분입니다. 정의된 길이가 0인 열에는 어떤 텍스트도 입력할 수 없습니다. 대신, 새로운 디자인 창에서 SQL Azure 버전의 영화 테이블을 열어보겠습니다. 

[![DatabaseSpy의 그래픽 디자인 보기](https://lh3.ggpht.com/_REdrfeVqYdU/TCufSDh77CI/AAAAAAAAALI/O6EJCwm9aAs/Compare%207_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Graphical Design View")](http://lh5.ggpht.com/_REdrfeVqYdU/TCufRp27G0I/AAAAAAAAALE/tqAUWY7CPiQ/s1600-h/Compare%207%5B4%5D.gif) 

설정 창의 설명 필드 크기를 늘리고, 그 결과로 생성된 변경 스크립트를 실행할 수 있습니다. 

[![DatabaseSpy 그래픽 디자인 속성 도움말 창](https://lh3.ggpht.com/_REdrfeVqYdU/TCufSxioHUI/AAAAAAAAALQ/XoBfYWngEpg/Compare%208_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Graphical Design Properties Helper Window")](http://lh5.ggpht.com/_REdrfeVqYdU/TCufSeBoTvI/AAAAAAAAALM/-5AGg9auKgU/s1600-h/Compare%208%5B4%5D.gif) 

[![DatabaseSpy 데이터베이스 구조 변경 스크립트](https://lh3.ggpht.com/_REdrfeVqYdU/TCufUGt3eiI/AAAAAAAAALY/R4dv-V2QgO8/Compare%209_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Database Structure Change Script")](http://lh4.ggpht.com/_REdrfeVqYdU/TCufTAQc5JI/AAAAAAAAALU/xxJcrOJkTjo/s1600-h/Compare%209%5B4%5D.gif) 

다음으로, 데이터를 다시 비교했을 때, 데이터가 변환된 것을 확인했지만, 이전에 정의된 필드 길이를 0으로 설정했기 때문에 데이터가 보이지 않았습니다. 

[![데이터베이스 스파이 콘텐츠 비교 결과](https://lh6.ggpht.com/_REdrfeVqYdU/TCufUstU4FI/AAAAAAAAALg/RkOJTSWx2mA/Compare%2010_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy Content Comparison with Results")](http://lh5.ggpht.com/_REdrfeVqYdU/TCufUepo9KI/AAAAAAAAALc/tHSQeZyaeFI/s1600-h/Compare%2010%5B4%5D.gif) 

**지연 문제** DatabaseSpy를 사용하여 클라우드 데이터베이스와 로컬 복사본 간의 지연 문제를 분석할 수 있습니다. 위에서 제시된 데이터 비교 결과를 통해 두 데이터베이스의 테이블에 1,000개의 동일한 데이터 행이 포함되어 있음을 확인할 수 있습니다. SQL Azure와 로컬 MySQL 데이터베이스에서 데이터를 가져오는 SELECT 문을 반복적으로 실행하여 실행 시간을 측정할 수 있습니다. DatabaseSpy의 SQL 편집기 메시지 창에 실행 시간이 표시됩니다. 

[![SQL Azure 쿼리 실행 시간](https://lh5.ggpht.com/_REdrfeVqYdU/TCufVfSAhaI/AAAAAAAAALo/VNLkRWIysP8/Compare%2011_thumb%5B2%5D.gif?imgmax=800 "SQL Azure Query Execution Time")](http://lh3.ggpht.com/_REdrfeVqYdU/TCufVMdD1hI/AAAAAAAAALk/QtJfweyzCgw/s1600-h/Compare%2011%5B4%5D.gif) 

위의 SELECT 문을 SQL Azure 버전의 sakila 데이터베이스에서 연속으로 다섯 번 실행했을 때, 결과는 60.632초에서 63.851초 사이로 나타났습니다. 동일한 영화 테이블에 대한 SELECT 문을 로컬 MySQL 데이터베이스에서 실행했을 때, 다음과 같은 결과가 나왔습니다 

[![SQL Server 쿼리 실행 시간](https://lh3.ggpht.com/_REdrfeVqYdU/TCufWFGbw5I/AAAAAAAAALw/kmpjFre4XzQ/Compare%2012_thumb%5B2%5D.gif?imgmax=800 "SQL Server Query Execution Time")](http://lh5.ggpht.com/_REdrfeVqYdU/TCufVqTzDjI/AAAAAAAAALs/vEAzXCCR3E0/s1600-h/Compare%2012%5B4%5D.gif) 

로컬 환경에서 테스트를 반복한 결과, 유사한 응답 시간이 나타났습니다. 개발자들에게 중요한 점은 데이터베이스 기반 애플리케이션을 클라우드로 이전할 때, 네트워크 지연 시간을 고려해야 한다는 것입니다. Altova DatabaseSpy의 [무료 체험판](https://www.altova.com/ko/download/databasespy/database_tool.html)을 통해 SQL Azure와의 연결을 직접 테스트해 보세요.
