WorkaHolic

SQL Server 2005 이렇게 달라졌다

2008. 12. 17. 22:20
반응형
[출처] : http://blog.paran.com/dwbhhstm2

 
안녕하세요. 올 11월에 발표될 SQL Server 2005 신제품에 대해서 많은 분들이 기대와 궁금한 점이 많으실
겁니다. 이런 궁금증의 해소를 위해 SQL Server의 대가이신 필라넷의 정원혁 강사님을 모시고 SQL Server의 변화된 기능 중 DB관리 관점에 초점을 맞춰서 이야기를 나눠 보도록 하겠습니다.

이번 11월 22일에 발표되는 Microsoft SQL Server 2005에 대해서 이렇게 강사님을 모시고 얘기를 듣게 되어 영광입니다. 92년 12월에 SQL Server 4 Windows NT Beta부터 96년에 SQL Server 6.5를 거쳐, 올해 2005년 11월에 SQL Server 2005가 발표될 예정입니다. 여러해 강사 활동을 해오신 강사님께는 감회가 남다를 것이라 생각합니다. 어떠신지요?
 
제가 데이터베이스가 아닌 네트워크 쪽으로 일을 하고 싶어서 마이크로소프트에 지원했습니다. 그때 다짜고짜 데이터베이스를 맡게 되었습니다. ‘MS에서도 데이터베이스가 있구나’ 그래서 어떤 것일까 받아봤는데
플로피 디스켓 다섯 장을 딸랑 주더라고요. 그 중에 두 장은 매뉴얼이었고 3장이 데이터베이스 엔진이었습니다. 유닉스에서 CD로 설치하다가 플로피디스켓 3장 가지고 설치하는 그 감회는 이루 말할 수 없었습니다. ‘이런 것도 데이터베이스일까?’ 하는 생각이 들었습니다.
그때가 4.2 버전이었는데, SQL Server가 있다는 것을 처음 알았습니다. Microsoft가 OS2에 싸이베이스를 포팅했고, 그것이 윈도우 NT에 옮겨 왔는데 이것이 좀 전에 소개해드린 버전이었습니다. 4.2까지는
싸이베이스 코드를 그대로 썼습니다.

4.21, 4.21a 뭐 이런 작은 버전들을 거쳐서 6.0이 처음 나왔을 때 제가 제품 발표회를 했던 기억이 납니다. 6.0은 4.2에 비해서 참 혁신적으로 많이 달랐습니다. 4.2에서는 쿼리 분석기로 하던 것이 거의 대부분이었는데, 6.0이 되어서야 그래픽 툴들이 나오기 시작했습니다. 쿼리 분석기를 비롯한 툴들, 엔진의 기능도 좋아졌습니다.

SQL Server 는 6.5에서 7.0이 나오면서 점점 혁신적으로 발전 되었습니다. 6.5에서 7.0으로 넘어갔던 그 시절은 아주 대지진과 같은 그런 상태였습니다. 0.5버전 차이였는데 제 생각으로 마이크로소프트가 버전을 잘못 붙였다 하고 생각합니다. 여기는 6.5에서 10.0으로 뛴 정도의 큰 변화가 있었습니다. 그때부터 싸이베이스의 코드를 많이 버렸습니다. Microsoft가 자체적인 기술을 도입하게 된 것입니다.

7.0에서 2000이 출시되기까지 많은 시간이 걸렸습니다. 그 당시 저는 SQL 책 발간을 하려 했으나, 2000이
나오고 나서야 책을 출간하게 되었습니다. SQL 2000의 기능은 정말 많이 좋아져서 ‘아! 이 정도면 참 쓸만하다’, ‘굉장히 만족스럽다’라고 생각했습니다. 가끔씩 타사 제품과 벤치마크를 할 때도 ‘이제는 어느 제품에도 뒤질게 없다’ 라는 SQL 2000에 대한 좋은 느낌을 갖게 되었습니다.

‘SQL Server 2005’ 제품 출시 계획이 발표되자, 2005 제품에 맞춰 여러 가지 기획을 했습니다. 하지만, 제품 출시가 5년이라는 시간이 걸렸고, 결국 그 계획으로 인해 혼란스러워 했습니다. SQL Server 2005를 기대하셨던 분들이라면 공감할 것이라 생각이 됩니다. SQL Server 2005는 그만큼 Microsoft 내부적으로도 진통이 많았습니다. 이 자리에서 공식적으로 밝힐 수는 없지만, 내부적인 갈등에 대한 이야기를 들을 때마다
"아~ 그럴만하구나" 라고 공감하였습니다. SQL Server 2005는 어렵게 출시된 제품이기 때문에 저 역시
제품에 대해 기대가 많이 됩니다.

저는 95년에 처음 SQL을 접했습니다. 저보다 더 오랫동안 사용하고 있는 분들도 많을 것이라 생각합니다.
제가 SQL을 접했던 10년여 동안 SQL Server는 엄청난 발전을 거듭했습니다. 앞서 말씀 드렸던 SQL 발전사를 통해서 SQL Server 2005가 얼마만큼의 발전을 했을 지에 대해선 논의하지 않아도 짐작하고 계시리라 생각합니다.
 
말씀하신 SQL Server 2000 이후에 SQL Server 2005가 나오는데 5년이 걸렸습니다. 일반적으로 Microsoft 제품 사이클로 보면 많이 긴 것 같은데요. 그만큼 심도 있게 준비 한 것이라 생각이 듭니다.
SQL Server 2005의 달라진 점에 대하여 설명을 부탁 드립니다.
 
SQL Server 2005에는 엔터프라이즈 환경을 공략할 수 있는 기능들이 포함 되었습니다. 2000에 대비해서
더 좋아진 점이라면 ‘대용량을 지원할 수 있다’ 라고 말할 수 있습니다.
DBA는 ‘위저드’라는 마법사 신이 요구하는 대로 ‘다음’을 열심히 누르면 일이 끝이 납니다. 2000에서는
어려웠던 것들 중의 하나가 테이블이 커지면, 파티션을 하는 것이었습니다. 2005에서는 파티션의 기능들이 들어가 있어 편리합니다.

24시간 운영되는 회사의 경우 인덱스 작업을 한다는 것은 굉장한 위험부담을 감수해야 될 일이었습니다.
하지만 2005에서는 온라인상에서 다른 작업의 블럭킹을 유발하지 않고 진행을 할 수 있습니다. 그래서
인덱스를 삭제하거나 만들 수 있고, 리빌드를 하고 이런 것들을 전부 온라인상에서 할 수 있습니다. 또 한
매니지먼트 툴들이 점점 통합되는 경향을 보이고 있습니다. 제가 4.1을 처음 접했을 시절에는 도구들이
여러 가지가 있었고, 6.0 ~ 7.0으로 가면서 점점 도구의 개수들이 줄어들기 시작했습니다. 2005에서는 확실하게 매니지먼트 스튜디오 SQL Server 2005 매니지먼트 스튜디오라는 제품 하나로 모두 통합 되어 들어갑니다.

또한 DBA에게 알리는 작업은 메일을 이용하게 됩니다. 메일 발송은 SQL Server 2000에서는 Exchange Server 설치가 필수였으나, 2005에는 Exchange Server를 설치하지 않아도 메일을 발송할 수 있습니다.
자세하게 설명하면 SMTP메일, POP메일을 지원하는 것을 통해 알려줄 수 있고, Notification서비스가 포함되어, 서비스 브로크라는 어려운 개념의 아키텍처가 도입 되었습니다. 이런 것들이 같이 연동이 되면 Notification서비스 그 자체만으로도 좋은 기능들을 구현할 수 있습니다.

그 외에도 다이나믹 매니지먼트 뷰가 있어 지금까지의 시스템 테이블을 내부적으로 검색이 가능합니다.
‘아 이런 작업들이 일어나고 있구나' '이 안에서 도대체 왜 얘가 CPU가 100을 치고 있을까!’, ‘왜 이 작업이
오래 걸릴까?’ 하는 여러 가지 작업들의 검증이 가능합니다. 이러한 작업들은 SQL Server 2000에서는 어려운 뷰나 프로시저 또는 다른 제품을 사용해야 했습니다. 하지만 SQL Server 2005에는 자체 적으로 뷰, 프로시저 기능을 갖고 있습니다. 이는 ‘미러링’이라는 작업이 되고, 데이터베이스에 클러스터를 쓸 수 없는 환경에서 ‘미러링’이라는 기능을 사용해서 거의 3초 정도면 한 서버가 죽었을 때 다른 서버로 전환이 될 수 있습니다.

SQL Server 2005에는 스냅샷이라는 것이 있어 보고서를 쓰거나 대용량 집계 작업을 할 때에도 유연한 성능을 낼 수 있습니다. 물론 잘 알고 계시겠지만 그 동안 닷넷과 연동되어 쓸 수 없던 자료형이 있던지, 특별한 기능이 있던지, 특별한 암호화 모듈이 필요하던지 이런 것을 했을 때 닷넷으로 스스로 코딩을 해서 만들어낸 DLL을 SQL Server가 마음껏 메모리 누수나 CPU 점유를 걱정하지 않고도 쓸 수 있습니다.

그 외에도 많은 좋은 점들이 있습니다. 예를 들면, BI나 리포팅 이런 것들은 지금 언급하지 않았습니다.
그것은 이제 앞으로 커다란 SQL Server의 거대한 산맥이 될 것이고, 윈도우를 하는 사람, 데이터베이스를
하는 사람, 이런 식으로 분류가 나누어지듯이 SQL Server를 사용하는 사람들도 BI를 하는 사람, 관리하는
사람, 개발을 하는 사람 등으로 분야가 나뉘어 질 것이라고 생각합니다.

SQL Server 2005의 기능 그 자체에 대해서는 이루 말할 수 없이 좋아졌습니다. 그래서 저는 이런 기능들을 써보고 실제 업무에 적용시켜서 그 편리함을 느껴보는 것에 굉장한 기대를 하고 있습니다.
 
감사합니다. 강사님의 말씀을 듣고 나니 SQL Server를 관리하는 DBA분들에게는 SQL Server 2005가 큰
변화의 계기가 될 것 같습니다. 이분들에게 SQL Server 2005의 관리기능 중에 주목해야 할 부분에 대해
꼭 집어 말씀해주시면 더욱 도움이 될 것 같은데요. 부탁 드립니다.
 
앞에서 소개를 드린 것들을 전체적으로 다 주목을 해야 합니다. 그러나 이제 회사 상황에 따라서 우리는
'가용성에 더욱 주목해야겠구나' '보안에 더 주목해야겠구나' 이런 판단이 설 것이라 생각을 합니다.
예를 들어 보안이라고 하지요. 현재 정부에서 개인정보 규칙을 만들었습니다. 그래서 공공기관은 이제 주민등록번호나 암호를 꼭 암호화해서 저장을 해야 되는 법안이 시행되고 있는데 앞으로 이것이 전체적으로 확산이 될 것이라고 생각을 합니다. 그러면 또 DBA들은 엄청난 업무를 갖게 되겠지요. SQL Server 2005에서는 이런 기능들을 쉽게 지원할 수 있습니다. 그런 것들을 DBA들은 더욱 공부해야 하고 준비를 해야 될 것이라고 생각을 합니다.

또한 ‘매니지먼트가 이슈였다’ ‘우리는 인덱스 관리하는 것이 너무나 힘들었다’ 라고 하면, SQL Server 2005의 새로운 인덱스 기능에 대해서 공부하고 관리하셔야 될 것입니다. ‘SQL Server 성능이 문제였다’ 거의 대부분의 회사들 이런 문제를 가지고 있습니다. 그렇다면 SQL Server 2005에서 새롭게 나타난 여러 가지 SQL 문장들과 최적화하기 기능들이 있습니다. 그런 것들에 대해서 공부를 해야 될 것이라고 생각합니다.

제가 여기서 가장 중요하다라고 생각 하는 것 중의 하나는 그것을 회사 혹은 상사에게 또는 다른 주변의 분들에게 보여주는 것이라고 생각합니다. 많은 사람들이 회사에서 ‘DBA가 왜 필요한지 모르겠다’ 라고 이야기를 하고 있고 DBA를 도입하라고 하면 ‘인건비가 얼만데’ 이런 이야기를 합니다. 또한 미국에서 실제로 SQL 7.0 나왔을 때 제가 들었던 소문은 ‘중소기업 규모에서 DBA들이 많이 해고 되었다’라는 이야기였습니다.
이유는 아까 말했던 마법사 신이 나타나서 이제 DBA 없이도 그런 업무를 쉽게 할 수 있기 때문이었습니다. 결국은 DBA들이 데이터베이스 백업이나 하고 일상적으로 해야 되는 일을 한다면 그것은 ‘기계지 인간이
아니고 DBA가 아닙니다’. 그럼 DBA가 해야 될 일은, 회사에서 ‘왜 DBA가 필요하며, 왜 내가 존재해야 되는가를 실제로 보여줄 수 있어야 된다’ 라고 생각합니다.

이에 제일 중요한 것은 ‘현재 상태를 보여주고, 앞으로 이렇게 개선이 된다’ 라는 것을 보여주는 일이라고
생각을 합니다. 또 회사와 약속된 서버의 다운타임, 이런 것들을 제대로 지켜내는 것이라고 생각합니다.
앞에서 소개해드렸던 ‘다이나믹 매니지먼트 뷰’ 라는 것 혹은 ‘Function’ 이런 것들이 대단히 도움을 줄 것이라고 생각을 하고 있습니다. 현재 한국에서는 이런 것들이 큰 회사를 제외하고는 제대로 쓰이지 않고 있습니다. 또한 제대로 모니터를 할 필요성도 못 느끼고, 또 얼마나 빨라졌는지를 입증할 필요성도 없습니다. 그냥 그것들을 주먹구구식으로 넘어가도 되기 때문이었다고 생각을 합니다.

SQL Server 2005에서는 윈도우 성능 모니터 자료를 프로파일러에서 함께 동시에 볼 수도 있습니다. 따라서 이제는 원인분석이나 어떠한 문제에 대한 규명들이 훨씬 더 수월해졌습니다. 결국은 기계가 할 일들을 DBA가 계속 하는 것이 아니라 SQL Server가 제공하는 여러 가지 기능들을 잘 응용해서 회사의 환경에 가장 적합한 것으로 바꾸어가는 능력이 DBA에게는 오히려 더 필요하다라고 생각을 합니다.
 
감사합니다. SQL Server 2005에 많은 궁금증을 가지고 계시던 분들께 충분한 해소의 시간이 되었을 거라고 생각합니다. 이번에 출시되는 SQL Server 2005는 엔터프라이즈 시장에 있어서 진정한 데이터베이스 환경이라고 할 수 있을거 같습니다.. 오늘 이렇게 귀한 시간을 내주셔서 감사합니다.
반응형