Archive for the ‘SQL-Server’ tag
무료 책(PDF) 다운로드 – SQL Server Profiler
SQL Server 전문 툴을 만드는 RedGate에서 한권의 eBook 다운로드를 무료로 제공하고 있다. 이번에 제공하는 책은 SQL Server Profiler에 관한 내용을 다룬 “Mastering SQL Server Profiler"이다. 이 SQL Server Profiler는 SQL Server를 디버깅하거나 Performance Tuning하는데 있어서 없어서는 안되는 가장 중요한 툴 중의 하나이다. 아직까지 Profiler에 대해 잘 모르시는 분이라면 꼭 한번 공부해 보라고 권하고 싶다.
Note: RedGate의 SQL Response 제품과 같이 다운로드하게 되어 있는데, 이 제품이 필요없으신 분은 그 밑에 있는 “Download just the eBook”을 클릭하기 바란다.
임시 테이블과 테이블 변수는 언제 사용하는게 좋은가?(SQL-Server)
SQL-Server 프로그래밍을 하면서 고민되는 것 중 한 가지는 임시로 데이터를 담아 놓을 테이블로 어떤 타입을 사용할 것인지 결정하는 것이다. 데이터 사이즈가 큰지, 인덱스가 필요한지, 프로그램의 실행 주기 등등에 따라 어떤 것을 선택할지가 달라지게 되기 때문이다. 그래서 이 선택은 다른 프로그래머들과 코드 리뷰시 종종 토론의 주제가 되곤 한다. 오늘 이 부분에 대해 정리를 해놓은 블로그가 있어 소개한다.
1) 데이터 지속성: 임시 테이블에 저장하는 데이터를 프로그램 실행이 끝난 후에도 남기고 싶다면 당연히 임시가 아닌 일반 테이블을 사용해야 한다. [개인 생각] 혹은 전역 임시 테이블(Global Temporary Table)을 사용해도 된다. 임시 테이블(Tempoary Table)과 테이블 변수(Table variable)의 경우 프로그램 실행 후 삭제되는 휘발성 저장 공간이지만, 전역 임시 테이블은 데이터를 삭제하지 않는다. 이 경우 Tempdb 데이타에비스에 데이터를 저장하게 된다.
2) CPU 사용: CPU를 적게 사용하는 쿼리를 만들고자 한다면 어떤 테이블 형식을 사용하든 상관없다. 대신 인덱스를 제대로 정의하고 있는지 체크해야 한다. 항상 Priamry Key를 가지는게 좋고, Order By로 정렬할 때는 Clustered Index가 제대로 정의되었는지 체크해야 한다. [개인 생각] 인덱스를 사용해야 하는 경우 테이블 변수를 사용할 수 없다. 왜냐하면 테이블 변수에는 인덱스를 정의할 수 없기 때문이다 (Schema 정의에 들어가는 Primary key 제외).
3) 속도: 여기도 역시 첫번째로 중요한 것은 인덱스… 두번째 중요한 것은… 테이블 변수가 임시 테이블보다 빠르긴 하지만, 데이타 양이 많은 경우 임시 테이블이 훨씬 빠른 것을 볼 수 있다. [개인 생각] 테이블 변수와 임시 테이블은 데이터를 처리하는 공간이 각기 다르다. 테이블 변수는 메모리 상에서 테이블을 만들어 처리하기 때문에 속도가 빠르지만, 처리하는 용량에 한계가 있을 수 밖에 없다. 이에 반해 임시 테이블은 tempdb 라는 데이터베이스에서 처리하기 때문에 일반 테이블처럼 인덱스만 잘 잡아 놓으면 데이터가 아무리 켜져도 속도가 크게 느려지지 않는다. 다만 tempdb 데이타베이스의 성능에 영향을 받게 된다.
4) 디스크 용량: 임시 테이블, 전역 임시 테이블, 테이블 변수 모두 동일한 용량을 사용한다. [개인 생각] 테이블 변수는 메모리에서 처리하게 되는데 왜 이렇게 설명했는지 이해가 가지 않는다.
마이크로소프트 웹 플랫폼 인스톨러 1.0 출시
마이크로소프트 윈도우에 웹 관련 프로그램들을 손쉽게 설치할 수 있는 프로그램인 웹 플랫폼 인스톨러(Web Platform Installer) 1.0이 공개되었다. 몇 달전 Release Candidate로 발표하였다가 이번에 정식 버전으로 업그레이드 된 것이다. 이 프로그램을 이용하면 다음과 같은 콤포넌트나 프로그램의 최신 버전을 손쉽게 설치할 수 있다.
http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx
이 중에서 개인적으로 좋아하는 것은 윈도우의 IIS에서 PHP를 사용하기 위해 필요한 FastCGI와 PHP용 SQL-Server 드라이버 설치를 지원한다는 것이다. PHP로 만들어진 좋은 프로그램들이 많은데, 그 프로그램들을 보기 위해서 리눅스를 또 설치하거나, 매뉴얼로 셋업하는게 여간 귀찮은게 아니다.
또한 웹 플랫폼 인스톨러의 자매(?) 프로그램으로 웹 애플리케이션 인스톨러(Web Application Installer)을 이용하면 PHP 의 유명한 프로그램인 oscommerce, phpBB, Gallery 등을 설치할 수도 있다. 단, 아직 웹 애플리케이션 인스톨러는 베타 버전에 머물러 있다.