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-209325

Anton1151's questions

Martin Hope
Anton1151
Asked: 2020-06-10 11:38:39 +0800 CST

Você deve executar DBCC CHECKCONSTRAINTS regularmente?

  • 2

No meu banco de dados, ninguém está adicionando, removendo ou desabilitando restrições fora de patches e lançamentos. Todas as restrições são habilitadas e confiáveis. Há uma verificação regular de restrições não confiáveis ​​ou desabilitadas, caso uma seja introduzida acidentalmente. DBCC CHECKDBtambém é executado regularmente para verificar se há corrupção.

Existe algum benefício em correr com DBCC CHECKCONSTRAINTSa mesma regularidade DBCC CHECKDB? Ou estou causando trabalho desnecessário? Quando DBCC CHECKCONSTRAINTSgeralmente deve ser executado?

sql-server
  • 1 respostas
  • 205 Views
Martin Hope
Anton1151
Asked: 2020-05-21 18:11:58 +0800 CST

Como você minimiza a chance de colisão entre restrições nomeadas pelo sistema em tabelas temporárias?

  • 1

Ocasionalmente, encontramos o erro “Já existe um objeto chamado 'PK__#TempTab__0796211ACE71813B' no banco de dados” quando alguns de nossos procedimentos tentam criar tabelas temporárias com uma restrição PK nomeada pelo sistema assim:

CREATE OR ALTER PROCEDURE dbo.StoredProc AS
BEGIN
    CREATE TABLE #TempTable (id INT NOT NULL, PRIMARY KEY CLUSTERED (id))
    ...
END

A consulta de tempdb.sys.objects revela algumas centenas de restrições no formato PK__#TempTab__XYZ. Muitos foram criados horas atrás e não foram modificados desde então. Havia muito poucas sessões ativas quando olhei para tempdb.sys.objects, então é difícil acreditar que existem muitas tabelas temporárias em uso atualmente. Temos muitas tabelas temporárias com nomes semelhantes criadas em muitos procedimentos armazenados.

Acho que o cache de tabela temporária é responsável aqui. Parece que essas restrições de PK permanecem no tempdb até que seus planos em cache associados sejam removidos. Os testes mostraram que desabilitar o cache da tabela temporária (criar estatísticas, adicionar restrições nomeadas etc.) faz com que a restrição PK seja removida de tempdb.sys.objects quando a tabela temporária sai do escopo. Acionar recompilações e liberar o cache do proc também limpa essas restrições de PK de tempdb.sys.objects.

Estou ciente de que as restrições nomeadas pelo sistema não são garantidas como exclusivas, conforme descrito nesta postagem O SQL Server pode criar colisões em nomes de restrição gerados pelo sistema? .

Minhas perguntas são:

  • Estou errado em supor que o cache de tabela temporária aumenta a chance de um conflito de nomes para restrições nomeadas pelo sistema em tabelas temporárias?
  • O excesso de cache do plano poderia ser responsável pelo grande número de restrições PK__#TempTab__XYZ que estou vendo em tempdb.sys.objects, aumentando assim a chance de duas restrições terem o mesmo nome? Estou tentando entender por que vimos esse erro raro com tanta frequência.
  • Se não pudermos garantir que as restrições nomeadas pelo sistema nas tabelas temporárias nunca encontrarão colisões de nomenclatura, o que podemos fazer para reduzir a chance dessas colisões em geral?
sql-server-2016 tempdb
  • 1 respostas
  • 220 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