프로덕션 데이터베이스 용 SQL Server Express? 모두 저렴하기 때문에 서버에

각 클라이언트마다 고유 한 데이터베이스가있는 이중 웹 / 내부 트랜잭션 응용 프로그램을 출시하려고합니다. 각 데이터베이스는 각각 50MB 미만으로 매우 작으므로 전체 SQL Server 대신 SQL Express 2008을 사용하는 것이 좋을지 궁금했습니다.

작은 15K 드라이브와 사용 된 듀얼 코어 서버가 모두 저렴하기 때문에 서버에 디스크 I / O를 분산시키면서 대량의 $$$를 절약 할 수있는 장점이 있습니다. 어느 시점에서 너무 많은 서버가 필요한 경우 SQL Server로 업그레이드 할 수 있지만 수십 명의 내부 사용자의 경우 지금 특히 비용이 많이 드는 것 같습니다 (특히 페일 오버 상자가 필요하기 때문에).

단일 프로세서에서 1GB 메모리 및 4 코어 사용은 데이터베이스 크기가 작을 때 너무 제한적으로 들리지 않습니다. 최대 200 명의 동시 사용자를 보유 할 수 없으며 대부분의 작업이 더 트랜잭션 처리됩니다 (무거운 RAM / CPU보다 많은 고속 디스크를 선호하는 것 같습니다).

초기에 $ 5-20K의 추가 투자를 정당화 할 수있는 SQL Server Standard의 이점이 누락 되었습니까?



답변

다른 버전의 SQL Server는 SQL 에이전트와 같은 기능을 제공하므로 데이터베이스 유지 관리 및 기타 작업을 예약 할 수 있습니다.

데이터베이스가 Express 에디션의 한계를 충족 할 수있는 한 괜찮습니다.

SQL 서버는 많은 RAM을 좋아합니다. 더 좋습니다. SQL Server는 데이터를 캐시에로드 할 수 없으므로 디스크에 추가로드가 발생합니다. SQL Server의 Web Edition 또는 Workstation Edition을 살펴 봐야합니다. 해당 에디션은 Express 에디션보다 높은 제한이 있지만 Standard Edition보다 비용이 적게 듭니다.

Express Edition으로 시작하면 라이센스를 구입 한 후 언제든지 Standard Edition으로 업그레이드 할 수 있습니다.


답변

Express 에디션과 관련하여 몇 가지 생산 문제와 해결 방법이 있습니다.

예약 된 백업

SSIS

프로파일 링


답변

  1. SQL Server 라이센스를 읽는 경우 장애 조치에 단독으로 사용되고 첫 번째 서버가 실패 할 때까지 쿼리를 제공하지 않는 경우 수동 서버에 대한 추가 라이센스를 구입할 필요가 없습니다.

  2. 우리는 SQL Server Express를 아주 오랫동안 사용해 왔으며 이전의 MSDE보다 좋고 훨씬 좋으며 200 개 이상의 시뮬레이션 연결을 가지고 있지만 크기가 2GB 인 데이터베이스는 하나 뿐이며 모든 것이 매끄 럽습니다. 고가의 조인을 피하고 색인 생성을 제대로 수행하면 문제가 발생하지 않습니다. 이제 우리는 SQL 표준을 사용하고 있지만 데이터베이스 크기가 4GB 이상이고 사용자 수가 200-500 명 미만이 될 때까지 SQL Express를 사용하여 살 수 있습니다.

  3. SQL Server Express는 메모리 공간을 200MB 이하로 사용합니다. 표준 에디션은 ~ 1.5GB를 사용합니다. 표준 에디션은 많은 캐싱을 수행하기 때문입니다. Express에서 표준 에디션에 비해 몇 밀리 초 안에 쿼리 속도가 느려집니다. 불행히도 Express Edition은 다중 코어 CPU (제한된 기능)를 사용하지 않으므로 2 코어 또는 4 코어가 있더라도 큰 도움이되지 않습니다.


답변

LuckyLindy-잠깐 멈추고 SQL 에이전트가 필요하지 않은지 확인하십시오. 당신은 썼다 :

각 클라이언트마다 고유 한 데이터베이스가있는 이중 웹 / 내부 트랜잭션 응용 프로그램을 출시하려고합니다. 각 데이터베이스는 각각 50MB 미만으로 매우 작으므로 전체 SQL Server 대신 SQL Express 2008을 사용하는 것이 좋을지 궁금했습니다.

백업 계획은 무엇입니까? SQL 에이전트를 사용할 필요는 없지만 DBA를보다 쉽게 ​​사용할 수 있습니다. 백업을 수행하는 T-SQL / SMO / PowerShell / 모든 스크립트를 작성한 다음 예약 된 작업을 사용하여 sqlcmd 또는 PowerShell을 통해 실행할 수 있습니다.

데이터베이스 유지 관리 계획은 무엇입니까? 시간이 지남에 따라 해당 데이터베이스를 조각 모음하고 일관성을 검사해야합니다. Standard Edition에는이를 쉽게하기 위해 모든 종류의 장점이 있지만 Express에서는 스크립팅 및 예약 된 작업과 함께 작업해야합니다.

서버의 문제를 어떻게 알 수 있습니까? 에이전트는 로그가 가득 차거나 디스크가 가득 찼을 때 알려주는 경고를 통해 여기를 도와줍니다.


이는 중요한 SQL Server DBA 유형 작업입니다. 사내 앱에 대해 Express를 실행하는 것이 한 가지이지만 일단 클라이언트를 위해 호스팅한다고 알려주기 시작하면 걱정됩니다.)


이것의 2 부 에서는 출시 시점과 1 년 후에 얼마나 많은 클라이언트를 지원할 계획입니까? “100 개의 클라이언트”라고 말하면 Express에서 100 개의 50MB 데이터베이스로 충분하지 않습니다. 메모리가 충분하지 않습니다. 도대체-델타의 양에 따라 15 개의 DB를 최대로 사용할 수 있습니다.

최대 200 명의 동시 사용자를 보유 할 수 없으며 대부분의 작업이 더 트랜잭션 처리됩니다 (무거운 RAM / CPU보다 많은 고속 디스크를 선호하는 것 같습니다).

INSERT와 같은 트랜잭션 작업은 여전히 ​​메모리에 기록되므로 더 적은 메모리 지원이 필요하지 않습니다. 실제로, 얼마나 많은 INSERT를 수행 하느냐에 따라 해당 사용자 수보다 많은 메모리가 필요할 수 있습니다. 사람들이 실제로 사용하지 않는 많은 양의 데이터를로드하는 경우 여전히 메모리를 차지합니다. “사용자가 자주 쿼리하는 데이터”와 “누구도 쿼리하지 않는 사용자가로드하는 데이터”사이에 경합 문제가 발생할 수 있습니다. SQL은 사람들이 메모리에서 더 자주 쿼리하는 데이터를 더 오래 보존함으로써 우리를 보호하지만 여전히 경합이 있습니다.

이 시점에서, 나는 lol를 짓밟고있다. 그리고 200 명의 동시 사용자는 Express를 위해 저와 함께 움직이지 않습니다. 64k가 평균 연결 메모리 요구 사항이라고 가정 해 보겠습니다. 연결 수는 몇 개입니까? 연결 풀링을 사용 하시겠습니까?

대체로, 당신의 설명을 읽은 내 직감은 “아니오-Express Edition은 충분히 강력하지 않습니다.”라고 말합니다. 그리고 나는 Workgroup Edition을 싫어합니다-그것이 나쁜 거래라고 생각합니다-그래서 Standard는 나에게 옳아 보입니다.


답변

무료 DBMS (MySQL, PostreSQL …) 중 하나를 사용해 보셨습니까? 라이센스 문제가 완화됩니까?

이것이 옵션이 아닌 경우 SQL Server Express는 좋은 솔루션 인 것 같습니다.


답변

중요한 프로덕션 응용 프로그램에 사용될 수 있습니다. 매일 수백만 건의 트랜잭션을 처리하기 위해 별도의 SQL Server Express 인스턴스가 설치된 1500 개가 넘는 의료 클리닉에서이 도구를 사용했습니다. 다음 중 하나를 사용하여 SQL Server 에이전트 단점을 쉽게 해결할 수 있습니다.

  1. SQLAutomate와 같은 타사 제품
  2. Windows 작업 스케줄러
  3. 마스터 서버 기능이 1 및 2로 설치된 SQL Server Standard 또는 Enterprise Edition은 매우 저렴하거나 무료입니다. 3 환경에서 사용 가능하지 않으면 비쌉니다.

“제작에서 SQL Server Express 사용”에 대한 Michael Otey의 훌륭한 프레젠테이션 (google it)을 참조하십시오.


답변