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, então estávamos pensando se faria sentido usar o SQL Express 2008 em vez do SQL Server completo.
Isso parece ter as vantagens de distribuir E / S de disco entre servidores e economizar $$$ maciços (uma vez que pequenas unidades de 15 K e servidores de núcleo duplo usados são baratos). Se em algum momento precisarmos de muitos servidores, podemos atualizar para o SQL Server ... mas com dezenas de usuários internos isso parece muito caro no momento (principalmente porque precisamos de uma caixa de failover).
1 GB de memória e uso de 4 núcleos em um único processador não parece muito restritivo, considerando nossos pequenos tamanhos de banco de dados. Nunca teremos mais de 200 usuários simultâneos e a maioria das operações será mais transacional (o que parece favorecer muitos discos de alta velocidade em vez de RAM / CPU pesada, certo?)
Estou perdendo alguma vantagem do SQL Server Standard que possa justificar inicialmente o investimento extra de US $ 5 a 20 mil?
Alguns problemas de produção e soluções alternativas que tive com a edição Express:
Backups agendados
SSIS
Posso executar pacotes SSIS com o SQL Server 2008 Express / Web ou SSIS do grupo de trabalho
com o Sql Server 2005 express
Criação de perfil
fonte
Se você ler a Licença do SQL Server, não precisará comprar uma licença adicional para o servidor passivo, se ela for usada apenas para failover e ela não atender a consultas até o primeiro servidor falhar.
Usamos o SQL Server Express por muito tempo, e é bom e muito melhor que o MSDE anterior, temos mais de 200 conexões simultâneas, mas só temos um banco de dados de tamanho 2GB e tudo é tranquilo. Nunca tivemos problemas, desde que evitássemos junções caras e fizemos uma boa indexação. Agora estamos usando o SQL Standard, mas até que o tamanho do seu banco de dados seja superior a 4 GB e o número de usuários seja inferior a 200-500, você certamente poderá viver com o SQL Express.
O SQL Server Express usa pouco menos espaço ocupado na memória ~ 200 MB, onde mais a edição Standard usa ~ 1.5 GB, provavelmente porque a edição padrão fará 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 cpus de múltiplos núcleos (recurso limitado), portanto, não será de grande ajuda se você tem 2 ou 4 núcleos.
fonte
LuckyLindy - Eu encorajo você a parar por um segundo e verificar se você não precisa do SQL Agent. Você escreveu:
Qual é o seu plano para backups? Você não precisa usar o SQL Agent, mas com certeza facilita a vida de um DBA. Você pode escrever scripts T-SQL / SMO / PowerShell / qualquer que faça seus backups e depois executar via sqlcmd ou PowerShell usando uma tarefa agendada.
Qual é o seu plano para manutenção de banco de dados? Com o tempo, esses bancos de dados precisarão ser desfragmentados e verificados quanto à consistência. A Standard Edition possui todos os tipos de brindes para facilitar isso, enquanto que no Express você precisa trabalhar (novamente com as tarefas de script e agendadas).
Como você será notificado sobre problemas no servidor? O agente ajuda aqui com alertas para notificá-lo quando um registro estiver ficando cheio, um disco estiver sendo preenchido etc.
Essas 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 dizer que os hospeda para clientes, fico preocupado :)
A parte 2 disso está perguntando a quantos clientes você planeja dar suporte a isso - tanto no lançamento quanto após um ano? Se você disser "100 clientes", 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 atingir no máximo 15 DBs, eu não sei.
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 necessidades de memória maiores do que a maioria com esse número de usuários. Se você estiver carregando muitos dados que as pessoas realmente não usarão, eles ainda ocuparão memória. Você pode ter problemas de disputa entre "dados que os usuários consultam com frequência" e "dados que os usuários estão carregando e que ninguém 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, eu estou divagando lol. E 200 usuários simultâneos também não gostam de mim pelo Express. Digamos que 64k seja um requisito médio de memória de conexão, quantas conexões seus aplicativos farão? Você usará o pool de conexões?
No geral, meu pressentimento ao ler sua descrição diz: "No - Express Edition simplesmente não é poderoso o suficiente". E eu odeio a Workgroup Edition - acho que é um mau negócio -, então o Standard parece certo para mim.
fonte
Você já pensou em usar um dos DBMS gratuitos (MySQL, PostreSQL ...)? Isso aliviaria suas preocupações com o licenciamento?
Se isso não for uma opção, o SQL Server Express parece ser uma boa solução.
fonte
Certamente pode ser usado para aplicações de produção significativas. Nós o usamos em mais de 1500 clínicas de assistência médica, 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:
Veja a excelente apresentação de Michael Otey (google it) em "Usando o SQL Server Express na produção".
fonte