SQL Server Express para bancos de dados de produção?

13

Estamos prestes a lançar um aplicativo transacional web / interno duplo em que cada cliente possui seu próprio banco de dados. Cada banco de dados é muito pequeno - com menos de 50 MB cada, por isso estávamos imaginando se faria sentido usar o SQL Express 2008 em vez do SQL Server completo.

Isso parece ter as vantagens de distribuir a E / S de disco entre os servidores, economizando um enorme $$$ (já que as pequenas unidades de 15K e os servidores de núcleo duplo usados são baratos). Se em algum momento precisarmos de muitos servidores, poderemos atualizar para o SQL Server ... mas com dezenas de usuários internos isso parece muito caro agora (especialmente porque precisaríamos de uma caixa de failover).

A memória de 1 GB e o uso de 4 núcleos em um único processador não parecem muito restritivos, dados os nossos pequenos tamanhos de banco de dados. Nós nunca teremos mais do que ~ 200 usuários simultâneos, e a maioria das operações será mais transacional (o que parece favorecer muitos discos de alta velocidade com muita memória RAM / CPU, certo?)

Estou perdendo alguma vantagem do SQL Server Standard que poderia justificar o investimento extra de $ 5-20K inicialmente?

    
por Beep beep 31.08.2009 / 07:34

6 respostas

17

As outras edições do SQL Server fornecem coisas como o SQL Agent para que você possa agendar a manutenção do banco de dados e outros trabalhos.

Desde que seu banco de dados possa se ajustar aos limites da edição Express, você estará bem.

O servidor SQL gosta de muita memória RAM. Quanto mais melhor. Como o SQL Server não pode carregar dados no cache que colocará carga adicional nos discos. Você deve examinar a edição Web Edition ou Workstation do SQL Server. Essas edições têm limites mais altos do que a edição Express, mas custam menos que a Standard Edition.

Se você começar com a edição Express, sempre poderá fazer upgrade para o Standard Edition depois de adquirir a licença.

    
por 31.08.2009 / 07:43
15

Alguns problemas de produção e soluções alternativas que tive com a edição Express:

Backups agendados

SSIS

Perfil

  • Nenhum profiler de SQL
  • Solução alternativa: experimente SqlProfiler For Express Edition
  • Advertência: Eu não achei sempre útil na solução de emergências de produção, como quando sqlexpress leva 100% da capacidade do processador do servidor. Eu não consegui fazer com que o criador de perfil produzisse qualquer traço em um desses casos.
  • Veja também: Qual profiler usar com o sql express?
por 02.09.2009 / 21:02
2
  1. Se você ler a Licença do SQL Server, não precisará comprar uma licença adicional para o servidor passivo se ele for usado exclusivamente para failover e não atender consultas até que o primeiro servidor falhe.

  2. Nós usamos o SQL Server Express por um tempo bastante longo, e seu MSDE bom e muito melhor que o anterior, temos mais de 200 conexões simulacrosas, mas só temos um banco de dados de 2GB e tudo está tranquilo. Nós nunca tivemos nenhum problema desde que evitássemos uniões caras e fizemos uma boa indexação. Agora estamos usando o SQL Standard, mas até o tamanho do seu banco de dados ser maior que 4GB e o número de usuários for menor que 200-500, você certamente pode viver com o SQL Express.

  3. O SQL Server Express usa pouco menos de pegada de memória ~ 200MB, onde a edição Standard usa ~ 1.5GB, provavelmente porque a edição padrão faz muito cache. Suas consultas serão mais lentas no Express em alguns milissegundos em comparação à edição padrão. Infelizmente, a edição Express não usa processadores multi core (isso é um recurso limitado), por isso não será de grande ajuda se você tem 2 núcleos ou 4 núcleos.

por 31.08.2009 / 10:24
2

LuckyLindy - Eu o encorajo a parar por apenas um segundo e verificar se você não precisa do SQL Agent. Você escreveu:

We are about to roll out a dual web/internal transactional application where each client has their own database. Each database is very small - under 50MB each, so we were wondering if it would make sense to use SQL Express 2008 instead of the full SQL Server.

Qual é o seu plano para backups? Você não precisa usar o SQL Agent, mas certamente torna a vida do DBA mais fácil. Você pode escrever T-SQL / SMO / PowerShell / qualquer script que faça seus backups e, em seguida, executar via sqlcmd ou PowerShell usando uma tarefa agendada.

Qual é o seu plano de manutenção de banco de dados? Com o tempo, esses bancos de dados precisarão ser desfragmentados e verificados quanto à consistência. Standard Edition tem todos os tipos de guloseimas para fazer este e-a-s-y enquanto, no Express, você tem que trabalhar (novamente com o script e as tarefas agendadas).

Como você será notificado sobre problemas no servidor? O agente ajuda aqui com os Alertas a notificá-lo quando um registro estiver ficando cheio, um disco estiver sendo preenchido, etc.

Estas são tarefas críticas do tipo DBA do SQL Server. Uma coisa é executar o Express para um aplicativo interno, mas quando você começa a nos informar que está hospedando esses aplicativos para clientes, fico preocupado:)

Parte 2 disso está perguntando a quantos clientes você planeja apoiar, tanto no lançamento quanto após um ano? Se você disser "100 clientes", então 100 bancos de dados de 50 MB não serão suficientes no Express - você simplesmente não tem memória suficiente. Heck - dependendo de quanto delta você tem, você pode ter no máximo 15 DBs, eu não sei.

We'll never have more than ~200 concurrent users, and most operations will be more transactional (which seems to favor lots of high speed disks over heavy RAM/CPU, right?)

Operações transacionais, como INSERTs, ainda são gravadas na memória, portanto, não espere que você precise de menos suporte de memória. De fato, dependendo de quantos INSERTs você faz, você pode ter maiores necessidades de memória do que a maioria com esse número de usuários. Se você estiver carregando muitos dados que as pessoas não estarão realmente usando, ainda assim ocupará a memória. Você pode encontrar problemas de contenção entre "dados que os usuários estão consultando com freqüência" e "dados que os usuários estão carregando que ninguém irá consultar por um tempo". O SQL nos protege, preservando os dados que as pessoas estão consultando com mais frequência na memória por mais tempo, mas você ainda terá contenção.

Neste ponto, estou divagando lol. E 200 usuários concorrentes não concordam comigo pelo Express. Digamos que 64k é o requisito médio de memória de conexão, quantas conexões seus aplicativos farão? Você usará o pool de conexões?

Tudo somado, meu sentimento de ler sua descrição diz: "No - Express Edition não é poderoso o suficiente." E eu odeio o Workgroup Edition - acho que é um mau negócio - então Standard parece certo para mim.

    
por 03.09.2009 / 19:05
1

Você já pensou em usar um dos DBMS gratuitos (MySQL, PostreSQL ...)? Isso aliviaria suas preocupações de licenciamento?

Se isso não for uma opção, o SQL Server Express parece ser uma boa solução.

    
por 31.08.2009 / 10:55
1

Ele certamente pode ser usado para aplicações de produção significativas. Nós o usamos em mais de 1500 clínicas de saúde, todas com instâncias separadas do SQL Server Express instaladas para processar milhões de transações por dia. Você pode facilmente contornar a desvantagem do SQL Server Agent usando um dos seguintes procedimentos:

  1. Produto de terceiros, como o SQLAutomate
  2. Agendador de Tarefas do Windows
  3. Uma edição Standard ou Enterprise do SQL Server com o recurso de servidor mestre instalado 1 e 2 são muito baratos ou gratuitos. 3 é caro, a menos que você já o tenha disponível em seu ambiente.

Veja a excelente apresentação de Michael Otey (google it) em "Usando o SQL Server Express em produção".

    
por 28.06.2017 / 08:18