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 / user-2862

geofftnz's questions

Martin Hope
geofftnz
Asked: 2020-04-18 15:04:59 +0800 CST

SQLServer 2016 aumentando continuamente a memória roubada

  • 6

Estamos experimentando um crescimento lento de memória roubada em nossos servidores de banco de dados no espaço de vários dias. Parece atingir um platô em torno de 130-140 GB, momento em que começamos a ter problemas maiores, como erros de falta de memória, congelamentos de vários segundos e failovers de AG. Os problemas começam a se manifestar cerca de uma semana após a reinicialização. Comecei a registrar o histórico de memória roubada, que é mostrado abaixo:

Memória roubada ao longo do tempo

Olhando para sys.dm_os_memory_clerks, parece que a maior parte disso vem da memória não-página registrada no buffer pool no nó NUMA 0:

Assistentes de memória do buffer pool

O rastreamento do total pages_kbdo buffer pool ao longo do tempo mostra o declínio no número de páginas à medida que virtual_memory_committed_kbaumenta. (Em 13 de abril, o servidor foi reinicializado para atualizações do Windows. O pool de buffers chega a 400 GB em cerca de uma hora)

Páginas do pool de buffers

Alguém já viu esse comportamento antes?

Estamos executando o SQLServer 2016 CU12 13.0.5698.0 O servidor é uma instância AWS EC2 i3.16xlarge de 64 núcleos. Temos vários outros clusters do mesmo tamanho que estão apresentando esse problema. Também temos alguns clusters em instâncias i3.8xlarge de 32 núcleos que também mostram o crescimento da memória roubada, mas não acabam travando / gerando erros de falta de memória. A única diferença (além da escala) é que os servidores de 64 núcleos possuem 2 nós NUMA.

Configuração do servidor

Atualização: MS indicou que a correção de bug no KB4536005 não está sendo portada para SQL2016.

sql-server sql-server-2016
  • 1 respostas
  • 700 Views
Martin Hope
geofftnz
Asked: 2018-06-29 15:46:47 +0800 CST

Por que meu INSERT falha nas permissões SELECT quando o controle de alterações está ativado?

  • 1

Eu tenho um usuário em um banco de dados SQL Server 2014 que só tem permissões para inserir em uma tabela (sem permissões de seleção). Quando o rastreamento de alterações estiver ativado na tabela, as inserções falharão comThe SELECT permission was denied on the object ...

Por que este é o caso?

Passos para reproduzir:

USE [master];
CREATE DATABASE insert_test;
GO
USE insert_test;
GO
CREATE TABLE dbo.test(id INT NOT NULL IDENTITY(1,1) PRIMARY KEY, value NVARCHAR(50));
ALTER DATABASE insert_test SET CHANGE_TRACKING=ON;
ALTER TABLE dbo.test ENABLE CHANGE_TRACKING;
GO
CREATE LOGIN test_user WITH PASSWORD='FD3nIk1p(4$LKH!eSY';
CREATE USER test_user FOR LOGIN test_user;
GRANT INSERT ON dbo.test TO test_user;
GO
EXECUTE AS USER='test_user';
INSERT INTO dbo.test(value) VALUES(N'hello');  -- Fails with: The SELECT permission was denied on the object 'test', database 'insert_test', schema 'dbo'

/*
-- Cleanup
USE [master];
GO
DROP DATABASE insert_test;
GO
DROP LOGIN test_user;
GO
*/
sql-server sql-server-2014
  • 1 respostas
  • 164 Views
Martin Hope
geofftnz
Asked: 2017-07-25 18:39:11 +0800 CST

Permissões mínimas necessárias para ler o tamanho do índice no SQL Server

  • 2

Estou envolvido no gerenciamento de um aplicativo com um grande número de bancos de dados SQL Server 2014 e estou extraindo tamanhos de tabela e índice para rastrear a capacidade. Estou usando a seguinte consulta:

select
    db_name() as DBName,
    object_schema_name(i.object_id) as SchemaName,
    object_name(i.object_id) as TableName,
    isnull(i.name,'(HEAP)') as IndexName,
    ps.SizeInPages
from
    sys.indexes i
        inner join 
        (
            select ps.object_id,ps.index_id,sum(ps.row_count) as IndexRows, sum(ps.used_page_count) as SizeInPages, count(*) as PartitionCount
            from sys.dm_db_partition_stats ps
            group by ps.object_id,ps.index_id
        ) ps on 
            ps.object_id = i.object_id and
            ps.index_id = i.index_id
where
    object_schema_name(i.object_id) not in ('cdc','sys')

Idealmente, eu gostaria de executar esta consulta a partir de um SQL Login com as permissões mínimas necessárias, mas até agora parece que o usuário precisa VIEW SERVER STATEe SELECTpermissões em todas as tabelas. Também tentei colocar a consulta acima em um procedimento armazenado e conceder EXECUTEpermissões à conta do usuário, mas sys.indexesainda é filtrada com base no que o usuário tem direitos de seleção.

Existe outra maneira de fazer isso que estou perdendo?

sql-server sql-server-2014
  • 4 respostas
  • 1554 Views
Martin Hope
geofftnz
Asked: 2016-05-18 19:49:09 +0800 CST

A criação de índice leva a um grande crescimento do log de transações

  • 7

Eu tenho uma tabela de aproximadamente 1 bilhão de linhas. Eu então crio um índice da seguinte forma:

CREATE NONCLUSTERED INDEX [IX_Index1] 
ON [dbo].[MyTable]( [CustomerID] ASC )  -- CustomerID is uniqueidentifier
WITH (DATA_COMPRESSION=PAGE);

Isso resulta em um índice de 9,15 GB (compactado), no entanto, o log de transações passou de vazio para 158 GB enquanto o índice estava sendo criado (nenhuma outra atividade de banco de dados). Por que a quantidade de espaço de log usada é muito maior do que o tamanho resultante do índice?

O banco de dados é o SQLServer 2014 Enterprise em modo de recuperação total em um grupo de disponibilidade.

Atualização Larguei e recriei o índice com a opção SORT_IN_TEMPDB = ON. As gravações de log de transações resultantes foram 10,4 GB para o tlog do banco de dados e 1,27 GB para o tempdb tlog.

sql-server index
  • 1 respostas
  • 1122 Views

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