프로덕션 데이터베이스 용 SQL Server Express?


14

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

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

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

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

답변:


17

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

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

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

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


하나는 그 반응에 무엇을 추가 할 수 없습니다
닉 Kavadias에게

작업 그룹 및 웹 에디션 라이센스를 외부 호스팅 비즈니스 앱에 사용할 수 있다고 생각하지 않습니다.
Akash Kava

1
CPU 라이센스는 모든 버전에서 사용할 수 있으며 (CPU 라이센스가 필요없는 Express 제외) 공용 웹 사이트에 사용할 수 있습니다. 다음은 Workgroup CPU License bit.ly/KDLDR에 대한 링크 입니다. Web Edition을 쉽게 찾을 수 없었지만 VAR은 둘러 보지 않고도 VAR을 제공 할 수 있어야합니다.
mrdenny

또한 Express 이상의 무언가로 시작하는 것이 좋으며 Express에서 다른 버전으로 전환하는 것이 어려울 수 있습니다.
DanBig

3
SQL Express는 다른 버전과 동일한 엔진이며 크기 제한이 있습니다. Express에서 다른 에디션으로 이동하는 것은 단순히 Express 에디션에서 데이터베이스를 분리하고 다른 에디션을 실행중인 다른 인스턴스에 연결하는 것입니다.
mrdenny

15

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

예약 된 백업

SSIS

프로파일 링


2
  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 코어가 있더라도 큰 도움이되지 않습니다.


SSE 2008에서 멀티 코어 (최대 4 개)를 사용했다고 생각 했습니까?
경고음 경고음

@LuckyLindy Standard는 소켓 당 많은 코어와 함께 최대 4 개의 소켓을 사용합니다.
mrdenny

"하지만 데이터베이스 크기가 4GB 이상이 될 때까지"4GB는 한 인스턴스 당 제한입니다. 나는 제한이 사용되는 경우의 수에 있다는 것을 기억하지 수
겐 나디 Vanin Геннадий Ванин

2

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는 나에게 옳아 보입니다.


2
스캇-좋은 대답입니다. 요컨대 ... SQL Server Express는 실제로 데이터베이스 전체의 저장소 크기 제한이 없으므로 4GB 이상의 데이터를 가진 단일 데이터베이스를 가질 수 없습니다. 테스트로 단일 서버에서 10,000 개의 100MB 데이터베이스 (1TB)를 만들었고 SQL Server Express가 제대로 실행되었습니다. 또한 각 연결과 관련된 메모리는 총 1GB로 계산되지 않습니다. 이 모든 데이터베이스를 관리하는 것은 약간의 고통이 될 수 있다는 데 동의합니다 ...하지만 실제로 1000 개의 데이터베이스가 있기 때문에 어쨌든 스크립트가 필요할 것입니다. 부정한).
삐 삐 소리

+1, 나는 그것이 gr8 답변
임에

1

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

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


2
실제로 작년에 MySQL, PostgreSQL, Firebird, DB2, Oracle, SQL Server, SQL Server Express 및 SQL Desktop과 같은 모든 주요 데이터베이스에 대해 성능 테스트를 실시했습니다. 우리는 DB2, Oracle, SQL Server (및 데스크탑은 아닌 Express)가 트랜잭션 작업을 위해 Windows에서 MySQL과 PostgreSQL을 날려 버렸다는 사실을 발견했습니다. 성능의 2 배는 서버 수의 두 배입니다. 리눅스에서 호스팅 할 때 MySQL과 PostgreSQL은 조금 더 나아졌지 만 여전히 그렇지는 않습니다.
경고음 경고음

1

중요한 프로덕션 응용 프로그램에 사용될 수 있습니다. 매일 수백만 건의 트랜잭션을 처리하기 위해 별도의 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)을 참조하십시오.


실제로 7 살짜리 게시물이었다 :)
BaronSamedi1958
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.