Desempenho do MSSQL Server Express Edition

1

Nossa empresa tem vários ambientes do SQL Server, alguns deles trabalham com o MS-SQL Server 2005 Express Edition e outros com o Standard ou Enterprise Edition.

Em uma discussão hoje, um DBA disse o MSSQL Express Ed. seria menos eficiente que a Standard Edition.

Bem, eu sei que existem os seguintes limites: O servidor usa apenas 1 GB de memória Servidor usa apenas 1 CPU

mas não sei se há outras limitações. Qual é a sua experiência, existem outros problemas de desempenho possíveis?

    
por john84 26.06.2009 / 19:16

6 respostas

7

Uma correção para as respostas anteriores - o SQL Server Express suporta apenas um único soquete de CPU - mas se o soquete tiver vários núcleos, o Express os usará e você obterá paralelismo. Pouco conhecido fato ...

    
por 26.06.2009 / 19:35
5

Não há limitações "artificiais" nas consultas padrão, ou seja, "select * from tableFoo" não será executado de forma mais lenta, exceto nos casos óbvios em que os núcleos da CPU seriam benéficos.

Existem alguns outros recursos ausentes que melhoram o desempenho em determinados casos, como visualizações indexadas, indexação de texto completo etc.

Como a maioria das perguntas, realmente depende do (s) aplicativo (s) exato (s). Se o seu aplicativo se beneficia de qualquer um dos recursos ausentes no Express Edition (consulte a grade de comparação da Microsoft: link ), então sim o desempenho vai sofrer. Se não, se não.

Acredito que seu próximo passo (se a necessidade impuser e a política do escritório e / ou relacionamentos interpessoais permitirem) for imprimir esse gráfico e pedir ao seu DBA para detalhar quais recursos ausentes em falta apresentarão problemas.

    
por 26.06.2009 / 19:24
3

O SQL Server Express não será executado mais lentamente do que as outras edições além do fato de que ele suporta apenas 1 CPU e 1 Gig de RAM.

O MSDE do SQL Server 2000 apenas suportava 5 instruções concorrentes sendo executadas, e qualquer outra coisa teria que esperar até que um slot livre aparecesse, mas isso foi removido na edição do SQL 2005 Express.

    
por 26.06.2009 / 19:24
1

Um problema com o SQL Express é que ele ficará em spool após ~ 15 minutos de tempo ocioso e liberará seu cache. Isso causará um atraso quando os usuários começarem a acessá-lo novamente. Dependendo dos seus padrões de uso, isso pode ser um problema. Você pode ler sobre os detalhes aqui: link

    
por 26.06.2009 / 20:17
0

Maior limitação que não seja o uso de CPU e RAM que você já identificou é que o total de quaisquer arquivos de dados de bancos de dados não pode ser maior do que 4Gb de tamanho. O total total de um banco de dados pode ser maior do que isso, pois os arquivos de log de transações não contam para os 4 GB.

No MSDE2000 (equivalente ao SQL 200 da Express Edition), o limite de tamanho era de 2 Gb.

    
por 26.06.2009 / 19:34
0
  1. reindex
  2. truncar
  3. encolher

para reindexar

USE {DB NAME}

DECLARE @TableName varchar(255)

DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN 
if @tablename='DUAL' or @tablename='IMPORT_CONTROL_TRN'
    begin
    print 'skipping ' +@tablename
    FETCH NEXT FROM TableCursor INTO @TableName
    continue
    end
else
    begin
    if @TableName='calltrak'
      begin
      print 'reindexing calltrak'
      DBCC DBREINDEX(@TableName,' ',50)
    end
    else
    begin
      print 're-indexing ' + @TableName
      DBCC DBREINDEX(@TableName,' ',70)
    end
    end
FETCH NEXT FROM TableCursor INTO @TableName
END

CLOSE TableCursor

DEALLOCATE TableCursor
exec sp_updatestats
    
por 26.06.2009 / 19:56

Tags