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

user1910240's questions

Martin Hope
user1910240
Asked: 2023-05-03 00:16:28 +0800 CST

TSQL - Como obter vários valores com datas diferentes em um select?

  • 6

Qual é a maneira mais eficiente de obter valores de 2 datas anteriores em uma declaração? (Espaço livre-2 e espaço livre -3 seriam 2 e 3 dias antes)

SELECT 
  servername, 
  DriveName,
  DriveLabel, 
  TotalCapacity, 
  UsedCapacity, 
  FreeSpace, 
  FreeSpacePercentage, 
  '' AS [Freespace -2],
  '' AS [Frespace-3], logDate
FROM dba.DiskSpace
WHERE logDate>GETDATE()-1;


CREATE TABLE [dba].[DiskSpace](
    [servername] [varchar](100) NULL,
    [DriveName] [varchar](3) NULL,
    [DriveLabel] [varchar](100) NULL,
    [TotalCapacity] [decimal](10, 2) NULL,
    [UsedCapacity] [decimal](10, 2) NULL,
    [FreeSpace] [decimal](10, 2) NULL,
    [FreeSpacePercentage] [int] NULL,
    [logDate] [date] NULL
) ON [PRIMARY]
GO
sql-server
  • 1 respostas
  • 43 Views
Martin Hope
user1910240
Asked: 2022-08-31 18:21:45 +0800 CST

Qualquer maneira de reduzir rapidamente um banco de dados para uso como clones

  • 2

Temos um banco de dados com pouco mais de um TB - normalmente fazemos backup disso, então, quando os desenvolvedores fazem um banco de dados clone para desenvolver, ele faz uma cópia desse banco de dados e o restaura em uma nova instância para eles. Temos muitos dados que realmente não são necessários para os desenvolvedores (tabelas de log etc.) mode, trunque muitas das tabelas grandes, reduza o banco de dados e faça backup, depois use essa cópia para executar nosso sistema clone. O psiquiatra está demorando muito - eu o coloquei em execução por 4 horas e até agora reduzimos ~ 13G de dados. Atualmente, posso reduzi-lo em 336.857,24 MB - o que levaria dias para obtê-lo. Alguém já se deparou com este problema? Existe alguma maneira de encolher mais rápido? Eu li sobre como criar um novo grupo de arquivos, mas realmente não quero criar scripts para todas as tabelas - existem centenas de tabelas. Obrigada.

sql-server backup
  • 1 respostas
  • 35 Views
Martin Hope
user1910240
Asked: 2022-03-27 08:14:12 +0800 CST

Como você gerencia sua rotina de limpeza de tabela de retenção de dados

  • 0

Como você gerencia a limpeza de tabela quando tem várias tabelas que têm diferentes políticas de retenção e relacionamentos FK Pai-Filho? Originalmente eu tinha uma tabela que tinha instruções delete diferentes (Delete from xxx where createddate < Getdate()-30) no exemplo mais simples. Então eu teria um processo noturno apenas percorrendo cada instrução e as executando - isso não parece ser uma maneira realmente eficiente - estou começando a ter problemas quando uma exclusão depende de outra, mas por qualquer motivo, uma não termina rapidamente o suficiente e então eu não posso limpar a mesa por causa de relacionamentos infantis. Também gostaria de obter melhores ideias sobre um sistema mais robusto para fazer isso, e não tenho tido sorte em descobrir o que pesquisar no Google para obter exemplos.

sql-server-2017
  • 1 respostas
  • 41 Views
Martin Hope
user1910240
Asked: 2021-08-08 09:09:04 +0800 CST

Excluir milhões de linhas em uma tabela mal projetada [duplicado]

  • -2
Essa pergunta já tem respostas aqui :
Excluir duplicatas com colunas específicas como identificador (2 respostas)
Fechado no ano passado .

Identifiquei milhões de linhas duplicadas em uma tabela que herdei usando esta consulta:

SELECT COUNT(*) AS NumRecords, AccessID, LEFT(SQLTEXT, 5000)
FROM Table
WHERE AccessID=5012
GROUP BY AccessID, LEFT(SQLTEXT, 5000)
HAVING COUNT(*)>1;

insira a descrição da imagem aqui

O único índice que posso usar na tabela é o campo AccessRequestID - o campo SQLText é VARCHAR(MAX) e existem mais de 100 milhões de registros aqui e como existe uma coluna varchar(MAX) a tabela é ENORME e leva FOREVER para fazer qualquer coisa com. Como posso transformar essa instrução Select em uma exclusão para remover os registros duplicados? Eu estava tentando descobrir como escrever um CTE usando Partition Rownum, mas não estou confiante nisso. Minha idéia seria tê-lo em um loop que começa com AccessID 1 e depois incrementa em um até o final da tabela (Existem apenas 5012 accessIDs exclusivos) Já que eu estaria filtrando o where pelo NC Index, espero que seja mais rápido .

sql-server t-sql
  • 1 respostas
  • 50 Views
Martin Hope
user1910240
Asked: 2020-01-23 09:28:24 +0800 CST

Aba Histórico do Sentry One Plan Explorer

  • 0

Enquanto estou trabalhando no ajuste de índice, adoraria que a barra de histórico fosse preenchida com cada execução para que eu pudesse ver as diferenças, provavelmente estou usando a ferramenta incorretamente. Meu fluxo de trabalho atual é:

Create New Plan Explorer Session
Paste Query
Click "Get Actual Plan"
go to Index Analysis
either use the <S> or manually script out an index change
click "Get Actual Plan" again and instead of adding history version 2 it just overwrites history version 1.
sql-server index-tuning
  • 1 respostas
  • 43 Views
Martin Hope
user1910240
Asked: 2019-11-07 19:12:13 +0800 CST

Instantâneo do banco de dados SQL antes do despolimento do código mais rápido que o backup

  • 2

Temos implantações de código todas as quintas-feiras, algumas das mudanças envolvem mudanças no banco de dados - antes que o código seja despolido fazemos um backup do SQL caso haja erros, isso geralmente leva 45 minutos e todos têm que esperar até que termine. Eu poderia tirar vantagem de tirar um instantâneo do banco de dados, e se o código for bom basta excluir o instantâneo, se houver algum problema usar o instantâneo para reverter as alterações feitas?

sql-server snapshot
  • 1 respostas
  • 90 Views
Martin Hope
user1910240
Asked: 2019-07-02 10:28:49 +0800 CST

Questão de sargabilidade - ordem das variáveis

  • 1

Eu tenho um procedimento armazenado que tem algumas linhas:

AND ( @StartDate IS NULL OR @StartDate <= r.ReferralDate )
AND ( @EndDate IS NULL OR @EndDate >= r.ReferralDate )

Deve ser reescrito como:

AND ( r.ReferralDate >= @StartDate or @Startdate IS NULL  )
AND ( r.ReferralDate <= @EndDate or @EndDate IS NULL )

Eu tentei das duas maneiras e olhando para os planos de execução. Há uma pequena diferença no número estimado de linhas, mas fora isso não vejo uma mudança, então presumi que a ordem na instrução não importava, mas esperava que alguém pudesse verificar.

sql-server t-sql
  • 1 respostas
  • 65 Views
Martin Hope
user1910240
Asked: 2018-02-16 08:45:35 +0800 CST

De onde vem o tipo de dados SQL_Variant na instrução select usando LOGINPROPERTY

  • 1

No código abaixo, não entendo de onde vem o SQL_Variant - A coluna que está reclamando é LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTimeDe acordo com os documentos do MSFT, esta é uma DATETIMEcoluna.

De onde vem o SQL_Varianttipo de dados?

DROP TABLE #PasswordChange;
CREATE TABLE #PasswordChange (name VARCHAR(50),
lastPWChangeTS DATETIME,
PWhash VARBINARY(26));

INSERT INTO #PasswordChange (name,
lastPWChangeTS,
PWhash)
SELECT [name],
LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime,
LOGINPROPERTY([name], 'PASSWORDHASH') AS PWhash
FROM sys.syslogins
WHERE loginproperty([name], 'PASSWORDLASTSETTIME') > DATEADD(HOUR, -24, 
GETDATE());

Msg 257, Level 16, State 3, Line 6
Implicit conversion from data type sql_variant to datetime is not 
allowed. Use the CONVERT function to run this query.
sql-server t-sql
  • 1 respostas
  • 478 Views
Martin Hope
user1910240
Asked: 2017-02-10 06:20:57 +0800 CST

Substituindo um servidor SQL envolvido na replicação transacional com o menor tempo de inatividade

  • 3

Tenho um servidor físico que a empresa deseja migrar para virtual - atualmente, é assinante em Replicação Transacional em um banco de dados muito grande. Qual seria a melhor maneira de minimizar o tempo de inatividade?

A inicialização do backup ainda levará aproximadamente 30 minutos para o backup, 2 horas para a restauração. Eu tenho o servidor virtual disponível para mim - seria possível definir o banco de dados que está sendo replicado para Log Ship para o novo servidor virtual (para mantê-lo em sincronia), então quando estivermos prontos para fazer o corte de alguma forma, apenas recriar a Replicação e fazer com que ela "pegue" sem ter novos instantâneos/etc?

sql-server transactional-replication
  • 1 respostas
  • 85 Views
Martin Hope
user1910240
Asked: 2014-11-19 07:11:40 +0800 CST

SQL: TSQL para localizar exibições inválidas

  • 3

temos uma janela de manutenção de terça/quinta-feira para um aplicativo ao qual oferecemos suporte. Às terças-feiras, modificamos uma instalação e na quinta-feira, se não houver erros, transferimos todas as alterações para as outras instalações. O aplicativo é de terceiros e, às vezes, faz alterações nos bancos de dados que tornam as exibições inválidas em nosso servidor de "relatórios" para o aplicativo.

Existe uma maneira de percorrer todas as exibições em meu servidor de relatório (existem cerca de 70 delas) com TSQL para encontrar os erros de vinculação após o depósito de terças-feiras?

Os erros que gostaria de encontrar são:

Executado como usuário: <>. Não foi possível preparar a(s) declaração(ões). [SQLSTATE 42000] (Erro 8180) Não foi possível usar a exibição ou a função 'PAT.dbo.Reorders' devido a erros de vinculação. [SQLSTATE 42000] (Erro 4413) Todas as consultas combinadas usando um operador UNION, INTERSECT ou EXCEPT devem ter um número igual de expressões em suas listas de destino. [SQLSTATE 42000] (Erro 205). A etapa falhou.

Existe uma maneira de fazer isso programaticamente ou apenas tenho que continuar clicando com o botão direito em cada exibição e tentando ver se ela volta com dados?

Obrigado,

t-sql
  • 2 respostas
  • 3665 Views
Martin Hope
user1910240
Asked: 2014-09-26 05:50:16 +0800 CST

Lendo um plano de execução do SQL Server

  • 3

Sou muito novo em qualquer tipo de ajuste, mas tenho aprendido mais. Um dos meus bancos de dados específicos, um dos problemas identificados com consultas lentas, são várias conversões implícitas. É meu entendimento que quando 2 tipos de coluna diferentes são comparados, o SQL Server precisa converter um para o outro, há uma lista de prioridades que informam como converter - Como o tipo de dados é convertido, é possível que ele não use índices corretamente.. Uma das primeiras consultas identificadas é bem básica, e gostaria de ver se alguém poderia me ajudar a identificar o que estou vendo no meu plano de execução...

A consulta básica é:

(
@1 TINYINT
,@2 VARCHAR(8000)
,@3 NUMERIC(4, 0)
)
SELECT CONVERT([float], [low] / @3, 0)
FROM [master].[dbo].[spt_values]
WHERE [number] = @1
AND [type] = @2

O plano de execução mostra:

insira a descrição da imagem aqui

Detalhes sobre a busca de índice clusterizado

IndexSeek

spt_vaules.Type é definido como nchar(3)

A seção Seek Predicates está me confundindo, exatamente qual parte disso está convertendo ... Minha consulta diz que [low] está sendo convertido de int para numérico, mas isso não parece ser o que os detalhes de busca do índice de cluster estão mostrando, é isto?

Existe uma maneira de dizer neste exemplo específico quanto "melhor" seria se eu fizesse as conversões explicitamente? Eu acho que poderia apenas fazer um "cast" na consulta e inserir alguns números onde estão as variáveis, correto?

sql-server index-tuning
  • 1 respostas
  • 1403 Views
Martin Hope
user1910240
Asked: 2014-03-19 10:15:50 +0800 CST

Entendendo os tipos de backup

  • 6

Recentemente, comecei a função de DBA júnior... Ontem criei um novo banco de dados para um colega de trabalho e meu chefe me pediu para garantir um plano de backup o mais rápido possível.

Não pensei muito sobre isso, entrei no agente, criei um trabalho que fazia um backup completo todas as noites à 1h. Orgulhosa de mim mesma, fui para a cama e não pensei mais nisso. Esta manhã, comecei a pensar que isso não era "bom o suficiente" - se o banco de dados morresse às 12h, eles perderiam quase 23 horas de dados, o que provavelmente me demitiria. :)

Portanto, para ter certeza de que entendi isso, acho que preciso fazer backups diferenciais além do meu backup completo. Depois de ver este tutorial , tive algumas perguntas:

  1. Eu simplesmente entraria no agente e adicionaria um trabalho que acontece a cada hora (por exemplo) que cria um backup diferencial?
  2. Se o meu entendimento estiver correto, isso faria o backup do log transacional a cada hora até 1 da manhã, quando ele fizer um backup completo, então "redefiniria" o T-Log e começaria novamente a partir do dia seguinte, então no máximo seria 1 hora de perda de dados - correto?
  3. Então, no final, eu teria 2 tarefas no agente, uma que dispara todos os dias à 1h para fazer um backup "COMPLETO" e outra que dispara a cada hora que faz um backup diferencial?
sql-server backup
  • 2 respostas
  • 772 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