AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 81724
Accepted
RayofCommand
RayofCommand
Asked: 2014-11-04 03:48:20 +0800 CST2014-11-04 03:48:20 +0800 CST 2014-11-04 03:48:20 +0800 CST

Manter o valor padrão de memória máxima de 2147483647 MB ​​no SQL Server, uma prática ruim?

  • 772

Com base nessa página msdn: configurações de memória do servidor , é uma boa prática manter os valores padrão para memória mínima e máxima do SQL-Servers para mantê-lo dinâmico ...

Pelo que aprendi através de tutoriais, você deve sempre definir um valor máximo, sobre o mínimo que não ouvi muito. Estou monitorando meu arquivo de paginação usando perfmon antigo e simples e percebi que raramente a troca de disco está acontecendo e uma vez quase causou uma falha no servidor.

Isso pode estar relacionado a ter a configuração de memória máxima padrão no SQL Server? Os bancos de dados têm cerca de 150 GB e a memória é de 48 GB, não há nenhum outro aplicativo em execução nessa máquina.

Além disso, por que você deveria ter um valor mínimo? Eu sei que um valor muito baixo pode impedir a inicialização do SQL-Server e sei que o SQL-Server mantém coisas na memória, então não tente liberar seu cache.

Estou usando o SQL-Server 2012, desde já agradeço!

sql-server performance
  • 2 2 respostas
  • 21252 Views

2 respostas

  • Voted
  1. Best Answer
    Shanky
    2014-11-04T12:12:24+08:002014-11-04T12:12:24+08:00

    Alguns detalhes para esclarecer as coisas

    Com base nessa página msdn: configurações de memória do servidor, é uma boa prática manter os valores padrão para a memória mínima e máxima do SQL-Servers para mantê-la dinâmica.

    Não, não está escrito, é um good practiceque diz que é recommendede tenho certeza de que os livros on-line da MS não podem escrevê-lo tão bem, isso ocorre porque o ambiente varia e o que é bom para um ambiente pode não ser adequado para outro. É principalmente bom ter restrição a algo que é muito consumido, embora seja gerenciado com eficiência. Considero uma boa prática definir a memória máxima do servidor no sistema porque isso restringirá o pool de buffer e informará ao SQL Server quanto máximo um pool de buffer pode crescer, embora o SQL Server possa consumir memória fora da configuração de pool de buffer/memória máxima do servidor se usar muito Terceiro procs armazenados estendidos da DLL de terceiros e servidores vinculados.

    O arquivo de paginação é usado pelo Windows para armazenar dados temporários que são trocados dentro e fora da memória física para fornecer um conjunto de memória virtual maior. O arquivo de paginação depende em grande parte de quanta memória o sistema operacional está comprometendo e muda de acordo com o valor mínimo e máximo definido. se você deseja monitorar o arquivo de paginação, deve confiar nos contadores perfmon. Por favor, leia este blog do MSDN

    Memory: Committed Bytes --Número de bytes de memória virtual que foram confirmados. Isso não representa necessariamente o uso do arquivo de paginação - representa a quantidade de espaço do arquivo de paginação que seria usado se o processo se tornasse completamente não residente

    Memory: Commit Limit -- Número de bytes de memória virtual que podem ser confirmados sem a necessidade de estender os arquivos de paginação.

    Arquivo de paginação: % de uso -- Porcentagem do arquivo de paginação confirmado

    Arquivo de paginação: % de pico de uso -- Maior porcentagem do arquivo de paginação confirmado

    Além disso, por que você deveria ter um valor mínimo? Eu sei que um valor muito baixo pode impedir a inicialização do SQL-Server e sei que o SQL-Server mantém coisas na memória, então não tente liberar seu cache.

    A memória mínima do servidor é a quantidade mínima de memória disponível para o SQL Server Memory Manager para uma instância do SQL Server. Isso entra em cena ativa quando o Windows está enfrentando pressão de memória; nesse caso, ele aumentará o sinalizador de notificação de memória baixa. O SQLOS responderá a ele, solicitará ao SQL Server para cortar seu consumo de memória e liberar seu cache, então o SQL Server não reduzirá preventivamente até seu valor mínimo de memória do servidor. Se a pressão for muito alta, o SQL Server pode não ser capaz de reagir rapidamente e, em seguida, o processo do SQL Server será paginado. Lembre-se de que a memória mínima do servidor não diz que, quando o SQL Server for iniciado, ele ocuparia no mínimo essa quantidade de memória, se não for necessária, o SQL Server iniciará consumindo muito menos do que a memória mínima do servidor.

    Outro uso da memória mínima do servidor é se você não deseja que o SQL Server seja paginado para o disco devido a algum sistema operacional/driver de terceiros com comportamento inadequado. Você define o servidor máximo e a memória mínima do servidor para quase o mesmo valor e dá à conta de serviço do SQL Server Páginas bloqueadas no privilégio de memória e, neste caso, mesmo se o sistema operacional enfrentar uma crise de memória, o SQL Server reduziria o máximo para o servidor mínimo e se a crise de memória do sistema operacional ainda estiver lá O processo do sistema operacional seria paginado e se tornaria extremamente lento. Mas isso é uma coisa ruim de se fazer e eu não recomendaria

    • 5
  2. James Anderson
    2014-11-04T04:05:30+08:002014-11-04T04:05:30+08:00

    O valor MIN é útil quando você tem um servidor com várias instâncias. Você pode usá-lo para priorizar o uso de memória por instância. Mas principalmente é para garantir que o SQL tenha pelo menos essa quantidade de memória para trabalhar. Isso impede que as pessoas executem algo no servidor e roubem toda a memória.

    A configuração padrão basicamente deixa a alocação de memória para o SQL Server, mas é uma prática recomendada definir um valor estático para que nunca haja um problema de o SQL retirar a memória de outros processos ou do sistema operacional. Isso é obrigatório se você estiver executando SSIS, SSAS, SSRS ou qualquer outro serviço/aplicativo no mesmo servidor. Portanto, sua configuração precisa deixar memória suficiente para os serviços + aplicativos + SO em execução no servidor.

    • 2

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve