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 / 问题

All perguntas(dba)

Martin Hope
beehive
Asked: 2023-12-20 21:11:28 +0800 CST

T-SQL arredonda a hora atual até o último período de 15 minutos

  • 5

Gostaria de selecionar dados do último período de 15 minutos, por exemplo:

às 12h02 quero linhas das 11h45 às 12h

às 12h09 ainda quero linhas das 11h45 às 12h

às 12h18 quero linhas das 12h às 12h15

Os dados são armazenados no formato datetime2 e estou usando a edição padrão 2019. Qualquer ajuda será apreciada para começar. A especificação pode mudar mais tarde (por exemplo, períodos de 10 minutos em vez de 15 minutos), mas espero poder resolver isso sozinho.

Obrigado

sql-server
  • 2 respostas
  • 52 Views
Martin Hope
Marcello Miorelli
Asked: 2023-12-20 20:28:48 +0800 CST

como matar uma aranha desonesta que já está morta?

  • 8

Eu tenho um spid obstinado que não consigo matar e está impedindo que o log de transações do meu tempdb seja truncado

foi assim que encontrei esse aranha desonesto:

if object_id('tempdb..#OpenTranStatus','U') is not null
   drop table #OpenTranStatus

CREATE TABLE #OpenTranStatus (
ActiveTransaction varchar(25),
Details sql_variant
);
 
-- Execute the command, putting the results in the table.
INSERT INTO #OpenTranStatus
EXEC ('DBCC OPENTRAN (sqlwatch) with tableresults')
SELECT * FROM #OpenTranStatus

insira a descrição da imagem aqui

esta é a consulta que ele está executando (ou mantendo):

select d.database_id , sd.sqlwatch_database_id, sd.sql_instance
        into #d
        from dbo.vw_sqlwatch_sys_databases d

        inner join [dbo].[sqlwatch_meta_database] sd 
            on sd.[database_name] = d.[name] collate database_default
            and sd.[database_create_date] = case when d.name = 'tempdb' then '1970-01-01 00:00:00.000' else d.[create_date] end
            and sd.sql_instance = @sql_instance

        left join [dbo].[sqlwatch_config_exclude_database] ed
            on d.[name] like ed.database_name_pattern collate database_default
            and ed.snapshot_type_id = @snapshot_type_id
        where ed.snapshot_type_id is null
        option (keep plan)

está funcionando há mais de 60 horas:

insira a descrição da imagem aqui

Já foi morto.

então as coisas que tentei fazer:

alter database sqlwatch set single_user with rollback immediate

mas não funcionou

kill 54 with statusonly

SPID 54: reversão de transação em andamento. Conclusão estimada da reversão: 0%. Tempo restante estimado: 0 segundos.

insira a descrição da imagem aqui

pergunta:

como posso parar o spid54?

sql-server
  • 1 respostas
  • 289 Views
Martin Hope
Yano_of_Queenscastle
Asked: 2023-12-20 19:13:19 +0800 CST

Como o SQL Server otimiza JOIN em hierarquiaid::IsDescendantOf()?

  • 11

Tenho uma tabela com estrutura em árvore (definida por hierarchyidcoluna) e quero selecionar todos os descendentes de um determinado registro. Para isso, estou usando hiearchyid.IsDescendantOf()o método.

Eu esperava que, como não estou fazendo comparações simples, mas estou executando operações (neste caso, estou chamando o IsDescendantOf()método), obterei um plano de execução terrível com varreduras de índice e outros enfeites.

Mesmo assim, o SQL Server o otimizou para uma pequena busca de índice.

Plano de execução

Estou intrigado por que e como.

A chamada de métodos em tipos CLR geralmente é otimizada? Presumi que o SQL Server vê os tipos CLR como uma caixa preta opaca e, portanto, não pode fazer sua mágica funcionar nele. (Uma vez que também não é possível fazer isso em funções SQL nativas.)

Ou isso é apenas para este método específico? (Como os hieararchyidvalores são ordenados em profundidade, eu poderia obter resultados semelhantes apenas fazendo comparações.)

Demonstração:

CREATE TABLE dbo.HierarchyExample (
    Id INT PRIMARY KEY,
    Hieararchy HIERARCHYID NOT NULL
);

INSERT INTO dbo.HierarchyExample(Id, Hieararchy)
VALUES
(1,  hierarchyid::Parse('/1/')),
(2,  hierarchyid::Parse('/1/1/')),
(3,  hierarchyid::Parse('/1/2/')),
(4,  hierarchyid::Parse('/1/3/')),
(5,  hierarchyid::Parse('/1/3/1/')),
(6,  hierarchyid::Parse('/1/3/2/')),
(7,  hierarchyid::Parse('/1/3/3/')),
(8,  hierarchyid::Parse('/1/4/')),
(9,  hierarchyid::Parse('/1/4/1/')),
(10, hierarchyid::Parse('/1/4/2/'));

CREATE INDEX IX_HierarchyExample_Hierarchy 
ON dbo.HierarchyExample (Hieararchy);

SELECT descendant.*
FROM HierarchyExample ancestor
    INNER JOIN HierarchyExample descendant
        ON descendant.Hieararchy.IsDescendantOf(ancestor.Hieararchy) = 1
WHERE ancestor.Id = 1

DROP TABLE IF EXISTS dbo.HierarchyExample;

O plano de execução

O violino

sql-server
  • 1 respostas
  • 407 Views
Martin Hope
ReynierPM
Asked: 2023-12-20 07:25:56 +0800 CST

É possível atualizar várias colunas de uma vez com várias condicionais?

  • 6

Tendo o seguinte trecho de tabela:

CREATE TABLE `some_table` (
    `exp_col_1` TINYINT(1) NOT NULL DEFAULT '0',
    `mark_col_1_as_exported` TINYINT(1) DEFAULT '0',
    `exp_col_2` TINYINT(1) DEFAULT '0',
    `mark_col_2_as_exported` TINYINT(1) DEFAULT '0',
);

existe uma maneira de escrever uma consulta para:

  • atualize a coluna mark_col_1_as_exportedondeexp_col_1=1
  • atualize a coluna mark_col_2_as_exportedondeexp_col_2=1

Eu sei que posso escrever um UPDATE para cada um deles mas isso é apenas um trecho, estamos falando aqui de cerca de 20 colunas a serem atualizadas

mysql-5.7
  • 1 respostas
  • 16 Views
Martin Hope
meh
Asked: 2023-12-20 06:41:06 +0800 CST

Mariadb semi-congelamento ao gravar gigabytes por segundo de acordo com iotop

  • 6

Recentemente, tive uma falha no mariadb que deu início a um pesadelo. Quando restaurei dumps, às vezes o daemon travava durante inserções em massa. Isso aconteceu apenas nas poucas tabelas "grandes" do innodb (tenho muitos bancos de dados pequenos que realmente não contêm muitos dados e a maioria dos outros possui uma quantidade significativa apenas em algumas tabelas). O banco de dados geralmente se recuperava eventualmente (às vezes depois de horas), mas às vezes travava. Restaurei o banco de dados em uma máquina diferente sem problemas em questão de minutos e depois movi o diretório de dados na máquina de produção. A única diferença séria entre os dois é que a máquina de sucesso não é uma VM e sim um armazenamento SSD esportivo.

Desde então, os problemas descritos ainda acontecem, em momentos aleatórios, sempre ao acessar aquelas tabelas grandes. Geralmente terei várias consultas congeladas, mas apenas uma às vezes é suficiente para acionar o comportamento.

O que acho realmente difícil de acreditar é o fato de que o iotop relata um thread mariadb gravando gigabytes por segundo , de forma constante, durante todo o tempo em que a consulta trava. Isso é fisicamente impossível, já que o desempenho dos discos não chega nem perto desses números. Também vasculhei a internet para encontrar o que pude sobre como otimizar configurações que até alguns dias atrás pareciam perfeitamente adequadas para o meu ambiente, ajustei algumas variáveis, mas nada importante, também os padrões na máquina "importação bem-sucedida" não eram muito diferentes começar com.

O problema é semelhante a https://jira.mariadb.org/browse/MDEV-30884 , no entanto, isso foi supostamente corrigido porque estou usando o 10.6.14 (também testei o 10.6.15) no Gentoo.

Estou perplexo, o que poderia estar causando isso? O armazenamento mecânico do HDD pode de alguma forma justificar o que está acontecendo?

performance
  • 1 respostas
  • 20 Views
Martin Hope
onejeremias
Asked: 2023-12-20 02:11:31 +0800 CST

Prática recomendada para separação de dados do banco de dados do sistema SQL Server e arquivos de log

  • 7
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migrado há 19 dias .

Estou movendo um banco de dados SQL Server para um servidor separado do aplicativo que o utiliza (atualmente o aplicativo e o SQL estão no mesmo servidor).

A nova instância foi configurada para que os arquivos de dados ( .mdf) e de log ( .ldf) padrão sejam armazenados em unidades separadas, de acordo com o que entendo ser a prática recomendada geral.

Passei pelo processo de mover os arquivos de banco de dados do sistema não mestre (temp, modelo, etc.) para esses locais, deixando o mestre por último porque ele usa um processo diferente. Veja este link para as instruções que usei: https://learn.microsoft.com/en-us/sql/relational-databases/databases/move-system-databases?view=sql-server-ver16

Para o banco de dados mestre, as instruções dizem que após movê-lo, você deve atualizar o SQLDataRootvalor no registro para apontar para a localização dos "arquivos do banco de dados mestre", mas como os arquivos de dados e log agora estão em pastas separadas, eu estava' não tenho certeza de qual local especificar. A partir daí, me perguntei de forma mais ampla se deveria separá-los ou se eles deveriam permanecer sempre juntos, e apenas novos bancos de dados teriam seus dados e arquivos de log movidos para unidades separadas.

Ainda não tentei mover o banco de dados mestre, devido à dúvida que tenho sobre como configurar o valor do registro e se algum dos arquivos do banco de dados do sistema deve ser separado ou mantido junto.

sql-server
  • 1 respostas
  • 220 Views
Martin Hope
Marcello Miorelli
Asked: 2023-12-20 00:53:25 +0800 CST

último backup - quantos arquivos de backup e onde eles estão?

  • 6

Estou restaurando um banco de dados, esse banco de dados é muito grande e possui 6 arquivos de backup (o que significa que o backup é dividido em 6 arquivos menores). Posso ver uma indicação disso usando apenas o rótulo de restauração

MediaFamilyId uniqueidentifier Número de identificação exclusivo da família de mídia.

MediaSequenceNumber int Número de sequência desta mídia na família de mídia.

aqui estão os comandos de restauração:

   restore filelistonly 
     FROM DISK = '\\MY_BACKUP_SERVER\SQLBackups\MY_SERVER\MY_DATABASE\FULL\MY_SERVER_MY_DATABASE_FULL_20231215_180002_6.bak'

 restore labelonly
  FROM DISK = '\\MY_BACKUP_SERVER\SQLBackups\MY_SERVER\MY_DATABASE\FULL\MY_SERVER_MY_DATABASE_FULL_20231215_180002_6.bak'

restore headeronly
   FROM DISK = '\\MY_BACKUP_SERVER\SQLBackups\MY_SERVER\MY_DATABASE\FULL\MY_SERVER_MY_DATABASE_FULL_20231215_180002_6.bak'

![insira a descrição da imagem aqui

Minha pergunta é: como posso encontrar (neste caso 6) arquivos dentro do msdb?

Basicamente, uma consulta para obter esses 6 - o último backup completo - restaura esses (6) arquivos.

sql-server
  • 2 respostas
  • 54 Views
Martin Hope
Player
Asked: 2023-12-19 23:09:07 +0800 CST

É possível reconectar o volume com dados do cassandra de um servidor (antigo) para outro (novo)

  • 7

Eu tenho um cluster Cassandra composto por 21 nós (cada nó tem volume de dados Cassandra de 4 TB) e preciso substituir os nós (migração do Ubuntu 18.04 para 22.04)

Gostaria de saber se é possível reanexar o volume de dados da instância existente a uma nova sem consequências negativas? Eu estava pensando em seguir o plano:

  1. Drene (nodetool dreno) o antigo servidor Cassandra e desligue-o;
  2. Desconecte o volume de dados e anexe-o ao novo servidor;
  3. Inicie o novo servidor;
  4. Repita as etapas a seguir para o restante dos nós do Cassandra.

Há algum risco em fazer isso, a única coisa que será alterada é o endereço IP privado do nó.

cassandra
  • 1 respostas
  • 13 Views
Martin Hope
Timur Shtatland
Asked: 2023-12-19 22:38:31 +0800 CST

CASCADE DELETE por extrato

  • 7

Posso executar algo assim no Postgresql, ou seja, executar CASCADE DELETEpara apenas uma instrução?

DELETE CASCADE FROM foo WHERE bar = 'baz';

Meu objetivo é excluir não apenas os registros selecionados de table foo, mas todos os registros em todas as tabelas onde foo.idcolumn é usado como chave estrangeira, sem adicionar a restrição para toda a tabela foo: ON DELETE CASCADE.

Relacionado:

  • postgresql - CASCADE DELETE apenas uma vez - Stack Overflow - uma pergunta semelhante foi feita em 2008. Gostaria de saber se alguma coisa mudou desde então.
  • Excluir uma linha em uma tabela também deve excluir as linhas correspondentes em outra tabela - quero evitar isso, pois é ALTERa tabela inteira e afeta todas as DELETEinstruções. Eu quero fazer algo assim, mas por declaração .
  • PostgreSQL: Documentação: 16: 5.4. Restrições - não foi possível encontrar uma resposta nos documentos.
  • É uma boa ou má ideia usar "ON UPDATE CASCADE ON DELETE CASCADE" para chaves estrangeiras? Por que esse mecanismo existe? - Os prós e os contras ON DELETE CASCADEsão discutidos nas respostas destas perguntas e respostas.
postgresql
  • 2 respostas
  • 120 Views
Martin Hope
Student
Asked: 2023-12-19 05:08:23 +0800 CST

Erro ao executar pg_basebackup

  • 6

Estou executando o Postgres16 no servidor Windows. Comece a pesquisar no pg_basebackup - quando executo o seguinte comando, pg_basebackup.exe -h SERVERNAME -U postgres -p 5432 -D Z:\PostgreSQL\16\backups\ -Fp -Xs -P -R --checkpoint=fast --max-rate=1024M recebo o seguinte erro:

pg_basebackup: erro: conexão com o servidor na porta 5432 "servername" falhou: FATAL: nenhuma entrada pg_hba.conf para conexão de replicação do host, usuário "postgres", sem criptografia

Acho que é porque adicionei as conexões SSPI .

Eu tenho as seguintes entradas antes do sspi, mas ainda recebo erros

host    all     all     0.0.0.0/0       scram-sha-256 
host    all     all     127.0.0.1/32    scram-sha-256 
host    all     all     ::0/0           sspi    map=sspi

Como faço para corrigir o pg_hba para que eu possa usar o sspi para determinados nomes de usuário que possam permitir conexões para logins locais (muito parecido com o modo misto no MSSQL)?

Obrigado

postgresql
  • 1 respostas
  • 45 Views
Prev
Próximo

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