Alocação de limites de RAM por banco de dados MSSQL específico

1

Eu tenho dois bancos de dados SQL2005 no mesmo servidor (Win2003 64 bits).

Um deles raramente é usado, mas tem um grande conjunto de dados. Toda vez que eu procuro por ele, o SQL decide dedicar alguns gigs de RAM ao banco de dados, e parece ficar assim desde então até ser reiniciado, canibalizando a RAM do outro banco de dados mais importante.

Existe alguma maneira de definir um limite de RAM por banco de dados?

Eu não me importo se houver alguma troca no disco quando eu consultar o banco de dados grande e raramente usado. O importante é que a RAM é reservada para a mais importante.

    
por realworldcoder 21.11.2010 / 15:17

2 respostas

2

and it seems to stay that way from then on until rebooted

Não, isso não acontece.

Is there some way to set a RAM limit per-database?

Não em uma vez.

I don't mind if there is some swapping to disk when I query from the large, seldom-used database

Gostaria que o cache do servidor nunca mudasse.

    
por 21.11.2010 / 15:38
0

A configuração de Memória é definida no nível do servidor e só pode ser definida para um valor máximo permitindo que outros processos não-sql sejam executados usando uma quantidade fixa de RAM restante.

A única opção é instalar outra instância (seja no mesmo servidor) e migrar o banco de dados que consome memória para lá. Desta forma, você pode dividir o total de RAM entre grandes db's de consumo de RAM e db's de consumo de RAM médio. Não se esqueça de deixar 1-2 GB também para os processos do sistema operacional.

    
por 23.11.2010 / 13:24