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 / 269217
Accepted
Rauf Asadov
Rauf Asadov
Asked: 2020-06-16 12:39:33 +0800 CST2020-06-16 12:39:33 +0800 CST 2020-06-16 12:39:33 +0800 CST

Soma de todos os funcionários de memória e memória total do servidor (KB)

  • 772

Estou tentando entender o gerenciamento de memória do SQL Server. Tenho um Windows Server 2019 em ambiente virtual com 64 GB de RAM. Também tenho o SQL Server 2019 instalado com Max Server Memory 59776 MB. Usando a seguinte consulta, encontrei a lista de todos os funcionários de memória:

SELECT  [type] AS [ClerkType], SUM(pages_kb) / 1024 AS [SizeMb]
FROM sys.dm_os_memory_clerks WITH (NOLOCK)
GROUP BY [type]
ORDER BY SUM(pages_kb) DESC

A soma total de todos os funcionários de memória foi igual a 23523 MB.

Value for MEMORYCLERK_SQLBUFFERPOOL memory clerk is 18387 MB.

Também verifiquei alguns contadores de desempenho:

Total Server Memory (KB) = 32262 MB.
Database Cache Memory (KB) = 18387 MB.

Por favor, corrija-me se alguma das afirmações abaixo estiver errada,

Max Server Memory for SQL Server 2019 = Buffer Pool Memory + Non-Buffer Pool Memory.

Total Server Memory (KB) - The committed memory from the Buffer Pool.

Data Cache Memory (KB) performance counter is equivalent to MEMORYCLERK_SQLBUFFERPOOL memory clerk and both represents data cache used size.

Above query shows all memory clerks for both Buffer Pool Memory and Non-Buffer Pool Memory.

Minha dúvida relacionada a este assunto:

Se o Total Server Memeory (KB) está relacionado à memória do Buffer Pool, então por que seu tamanho (32262 MB) é maior do que o total de memória total dos funcionários (23523 MB), o que representa tanto a Memória Buffer Poll quanto a Memória Non-Buffer Pool?

EDIT: Resultado da seleção * de sys.dm_os_process_memory insira a descrição da imagem aqui insira a descrição da imagem aqui

sql-server performance
  • 1 1 respostas
  • 273 Views

1 respostas

  • Voted
  1. Best Answer
    Shanky
    2020-06-17T02:55:05+08:002020-06-17T02:55:05+08:00

    Memória máxima do servidor para SQL Server 2019 = memória do pool de buffers + memória do pool sem buffer.

    Não, parte da alocação de memória para o SQL Server 2019 pode ser feita fora da memória máxima do servidor como (eu citaria o Guia de Arquitetura de Gerenciamento de Memória )

    Memória para pilhas de thread1, CLR2, arquivos .dll de procedimento estendido, os provedores OLE DB referenciados por consultas distribuídas, objetos de automação referenciados em instruções Transact-SQL e qualquer memória alocada por uma DLL não SQL Server não são controladas pela memória máxima do servidor.

    Assim, você pode ver que parte da memória está alocada fora da memória máxima do servidor, de modo que sua equação nem sempre é verdadeira.

    Memória Total do Servidor (KB) - A memória confirmada do Buffer Pool.

    Sim, essa é a memória confirmada usando o gerenciador de memória.

    O contador de desempenho da memória de cache de dados (KB) é equivalente ao funcionário de memória MEMORYCLERK_SQLBUFFERPOOL e ambos representam o tamanho do cache de dados usado.

    Não, o buffer pool é muito maior, o cache de dados é um subconjunto dele.

    Se o Total Server Memeory (KB) está relacionado à memória do Buffer Pool, então por que seu tamanho (32262 MB) é maior do que o total de memória total dos funcionários (23523 MB), o que representa tanto a Memória Buffer Poll quanto a Memória Non-Buffer Pool?

    A memória total do servidor inclui basicamente a memória usada pelo SQL Server que é quase 31 GB e isso será maior que a soma dos funcionários, que é basicamente 22 GB, porque os funcionários de memória não capturam todas as alocações de memória dentro do SQL Server ( eles fazem a maior parte Contudo).

    Diga-me se tiver mais perguntas.

    • 1

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