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
Lamak
Asked: 2018-07-05 08:38:21 +0800 CST

Alterando o uso de GETDATE() em todo o banco de dados

  • 27

Preciso migrar um banco de dados SQL Server 2017 local para um banco de dados SQL do Azure e estou enfrentando alguns desafios, pois há algumas limitações a serem enfrentadas.

Em particular, como um banco de dados SQL do Azure funciona apenas no horário UTC (sem fusos horários) e precisamos do horário local, temos que alterar o uso de todos os GETDATE() lugares no banco de dados, o que provou ser mais trabalhoso do que eu previa.

Eu criei uma função definida pelo usuário para obter a hora local que funciona corretamente para o meu fuso horário:

CREATE FUNCTION [dbo].[getlocaldate]()
RETURNS datetime
AS
BEGIN
    DECLARE @D datetimeoffset;
    SET @D = CONVERT(datetimeoffset, SYSDATETIMEOFFSET()) AT TIME ZONE 'Pacific SA Standard Time';
    RETURN(CONVERT(datetime,@D));
END

O problema com o qual estou tendo problemas é realmente alterar GETDATE()essa função em todas as visualizações, procedimentos armazenados, colunas computadas, valores padrão, outras restrições etc.

Qual seria a melhor maneira de implementar essa mudança?

Estamos na visualização pública de instâncias gerenciadas . Ele ainda tem o mesmo problema com GETDATE(), portanto, não ajuda com esse problema. A migração para o Azure é um requisito. Este banco de dados é usado (e será usado) sempre neste fuso horário.

sql-server azure-sql-database
  • 6 respostas
  • 10921 Views
Martin Hope
Youcef Laidani
Asked: 2017-12-20 00:52:15 +0800 CST

PostgreSQL - Trunque uma tabela em cascata e redefina todas as sequências hierárquicas com 1

  • 27

Existe alguma maneira de redefinir todas as sequências de tabelas, quando truncar uma tabela em cascata.

Eu já li este post Como redefinir a sequência no postgres e preencher a coluna id com novos dados?

ALTER SEQUENCE seq RESTART WITH 1;
UPDATE t SET idcolumn=nextval('seq');

Funciona apenas para uma sequência, mas meu problema é reiniciar toda a sequência das tabelas truncadas.

Considere quando eu uso TRUNCATE sch.mytable CASCADE;afetar 3 tabelas relacionadas, o que significa três sequências, existe alguma solução para reiniciar essa sequência de uma só vez.

postgresql sequence
  • 1 respostas
  • 43994 Views
Martin Hope
Louis Somers
Asked: 2017-11-18 03:57:22 +0800 CST

Usando colunas de origem na cláusula OUTPUT INTO de uma instrução INSERT (SQL Server)

  • 27

Estou escrevendo uma instrução de inserção de processamento em lote e gostaria de usar uma tabela temporária para acompanhar os IDs inseridos em vez de fazer um loop pelos itens e chamar SCOPE_IDENTITY() para cada linha inserida.

Os dados que precisam ser inseridos possuem ID's (temporários) ligando-os a outros dados que também devem ser inseridos em outra tabela, então preciso de uma referência cruzada do Id real e do Id temporário.

Este é um exemplo do que tenho até agora:

-- The existing table 
DECLARE @MyTable TABLE (ID INT IDENTITY(1,1), [Name] NVARCHAR(MAX));

-- My data I want to insert
DECLARE @MyInsertData TABLE (ID INT, [Name] NVARCHAR(MAX));
INSERT INTO @MyInsertData ( ID,Name)
VALUES ( -1 , 'bla'),(-2,'test'),(-3,'last');

DECLARE @MyCrossRef TABLE ([NewId] INT, OldId INT);

INSERT INTO @MyTable ( [Name] )
   OUTPUT Inserted.ID, INS.ID INTO @MyCrossRef
   SELECT [NAME] FROM @MyInsertData INS

-- Check the result
SELECT * FROM @MyCrossRef

O problema é que não consigo fazer com que a cláusula OUTPUT INTO aceite o ID, já tentei @MyInsertData.IDe outros truques juntando a tabela a ela mesma, mas nada parece funcionar.

insert output-clause
  • 2 respostas
  • 27186 Views
Martin Hope
jitbit
Asked: 2017-07-31 23:22:25 +0800 CST

O SQL Server limpa o cache do plano e as estatísticas de execução periodicamente

  • 27

Após atualizar o SQL Server 2014 para 2016, o servidor continua redefinindo os planos de execução em cache e dm*exibições (como dm_exec_query_stats) etc. a cada duas horas

Como se alguém executasse DBCC FREEPROCCACHEe DBCC DROPCLEANBUFFERSmanualmente (exceto por ninguém, isso acontece automaticamente).

O mesmo banco de dados funcionou bem no SQL Server 2014 e no Windows Server 2012, as coisas deram errado depois de mudar para o SQL Server 2016 (e o Windows Server 2016)

Coisas que verifiquei: o banco de dados não possui o sinalizador "fechamento automático". O servidor SQL está ad hoc optimizedconfigurado para true(pensei que ajudaria, não ajudou). O "repositório de consultas" está "desativado". O servidor tem 16 GB de memória.

Nada útil no "log do SQL Server" também. Apenas uma mensagem de backup semanal...

Eu também verifiquei este artigo https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-set-options (role para baixo até a seção "Exemplos" e logo acima it) há uma lista de situações em que o plano é liberado automaticamente. Nenhuma delas se aplica.

ATUALIZAR:

Infelizmente, nenhuma das sugestões ajudou. Conceder permissões LPIM, detectar e corrigir consultas não parametrizadas que geraram toneladas de planos para a mesma consulta, diminuindo a "memória máxima do servidor"... Os planos continuam sendo redefinidos aleatoriamente, de duas em duas horas a cada 5-10 minutos. Se o servidor estava "sob pressão de memória", como é que a versão 2014 estava funcionando bem na mesma máquina.

Aqui está a saída sp_Blitz conforme solicitado

**Priority 10: Performance**:

- Query Store Disabled - The new SQL Server 2016 Query Store feature has not been enabled on this database.

    * xxx


**Priority 50: Server Info**:

- Instant File Initialization Not Enabled  - Consider enabling IFI for faster restores and data file growths.


**Priority 100: Performance**:

- Resource Governor Enabled  - Resource Governor is enabled.  Queries may be throttled.  Make sure you understand how the Classifier Function is configured.


**Priority 120: Query Plans**:

- Implicit Conversion Affecting Cardinality - One of the top resource-intensive queries has an implicit conversion that is affecting cardinality estimation.

    * 

- Missing Index - One of the top resource-intensive queries may be dramatically improved by adding an index.

    * 

- RID or Key Lookups - One of the top resource-intensive queries contains RID or Key Lookups. Try to avoid them by creating covering indexes.

    * 

**Priority 170: File Configuration**:

- System Database on C Drive
    * master - The master database has a file on the C drive.  Putting system databases on the C drive runs the risk of crashing the server when it runs out of space.

    * model - The model database has a file on the C drive.  Putting system databases on the C drive runs the risk of crashing the server when it runs out of space.

    * msdb - The msdb database has a file on the C drive.  Putting system databases on the C drive runs the risk of crashing the server when it runs out of space.


**Priority 200: Backup**:

- MSDB Backup History Not Purged msdb - Database backup history retained back to Jun 10 2017  9:47PM


**Priority 200: Informational**:

- Backup Compression Default Off  - Uncompressed full backups have happened recently, and backup compression is not turned on at the server level. Backup compression is included with SQL Server 2008R2 & newer, even in Standard Edition. We recommend turning backup compression on by default so that ad-hoc backups will get compressed.


**Priority 200: Non-Default Server Config**:

- Agent XPs  - This sp_configure option has been changed.  Its default value is 0 and it has been set to 1.

- max server memory (MB)  - This sp_configure option has been changed.  Its default value is 2147483647 and it has been set to 15000.

- optimize for ad hoc workloads  - This sp_configure option has been changed.  Its default value is 0 and it has been set to 1.

- show advanced options  - This sp_configure option has been changed.  Its default value is 0 and it has been set to 1.

- xp_cmdshell  - This sp_configure option has been changed.  Its default value is 0 and it has been set to 1.


**Priority 200: Performance**:

- Buffer Pool Extensions Enabled  - You have Buffer Pool Extensions enabled, and one lives here: Z:\sql_buffer_pool.BPE. It's currently 60.00000000000 GB. Did you know that BPEs only provide single threaded access 8KB (one page) at a time?

- cost threshold for parallelism  - Set to 5, its default value. Changing this sp_configure setting may reduce CXPACKET waits.

**Priority 240: Wait Stats**:

- No Significant Waits Detected  - This server might be just sitting around idle, or someone may have cleared wait stats recently.

**Priority 250: Informational**:

- SQL Server Agent is running under an NT Service account  - I'm running as NT Service\SQLSERVERAGENT. I wish I had an Active Directory service account instead.

- SQL Server is running under an NT Service account  - I'm running as NT Service\MSSQLSERVER. I wish I had an Active Directory service account instead.

**Priority 250: Server Info**:

- Default Trace Contents  - The default trace holds 125 hours of data between Aug 19 2017 11:55AM and Aug 24 2017  4:59PM. The default trace files are located in: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log

- Hardware  - Logical processors: 2. Physical memory: 15GB.

- Hardware - NUMA Config  - Node: 0 State: ONLINE Online schedulers: 2 Offline schedulers: 0 Processor Group: 0 Memory node: 0 Memory VAS Reserved GB: 29

- Locked Pages In Memory Enabled  - You currently have 12.02534484863 GB of pages locked in memory.

- Memory Model Unconventional  - Memory Model: LOCK_PAGES

- Server Last Restart  - Aug 20 2017 12:32PM

- Server Name  - xx

- Services
 - Service: SQL Full-text Filter Daemon Launcher (MSSQLSERVER) runs under service account NT Service\MSSQLFDLauncher. Last startup time: not shown.. Startup type: Manual, currently Running.

 - Service: SQL Server (MSSQLSERVER) runs under service account NT Service\MSSQLSERVER. Last startup time: Aug 20 2017 12:32PM. Startup type: Automatic, currently Running.

 - Service: SQL Server Agent (MSSQLSERVER) runs under service account NT Service\SQLSERVERAGENT. Last startup time: not shown.. Startup type: Automatic, currently Running.

- SQL Server Last Restart  - Aug 20 2017 12:33PM

- SQL Server Service  - Version: 13.0.4446.0. Patch Level: SP1. Edition: Enterprise Edition (64-bit). AlwaysOn Enabled: 0. AlwaysOn Mgr Status: 2

- Virtual Server  - Type: (HYPERVISOR)

- Windows Version  - You're running a pretty modern version of Windows: Server 2012R2 era, version 6.3


**Priority 254: Rundate**:

 - Captain's log: stardate something and something...
sql-server sql-server-2016
  • 3 respostas
  • 14223 Views
Martin Hope
Evan Carroll
Asked: 2017-05-24 08:55:20 +0800 CST

O SQL Server retorna "Erro de estouro aritmético ao converter expressão em tipo de dados int."

  • 27

Quando eu executo este comando comSUM()

SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total]
FROM   dbo.t1 AS t
WHERE  t.Id > 0
       AND t.Id < 101;

Estou entendendo,

Arithmetic overflow error converting expression to data type int.

Alguma ideia de qual é a causa disso?

Estou apenas seguindo as instruções nesta resposta .

sql-server aggregate
  • 2 respostas
  • 113368 Views
Martin Hope
garik
Asked: 2011-03-29 07:52:46 +0800 CST

Como desativo SCHEMABINDING para uma exibição sem recriá-la?

  • 28

Como desligo SCHEMABINDINGpara uma visualização sem recriá-la?

sql-server sql-server-2008
  • 4 respostas
  • 28939 Views
Martin Hope
Lars Corneliussen
Asked: 2011-03-17 05:36:31 +0800 CST

Como as colunas longas afetam o desempenho e o uso do disco?

  • 28

Em nosso projeto atual, acontece com muita frequência que precisamos estender as colunas em alguns caracteres. De varchar(20)para varchar(30)e assim por diante.

Na realidade, quanto isso realmente importa? Quão bom isso é otimizado? Qual é o impacto de permitir apenas 100 ou 200 ou até 500 caracteres para campos normais de "entrada"? Um e-mail só pode ter 320 caracteres, então ok - há um bom limite aí. Mas o que ganho se definir para 200, porque não espero endereços de e-mail mais longos do que isso.

Normalmente nossas tabelas não terão mais de 100.000 linhas, e até 20 ou 30 dessas colunas.

Usamos o SQL Server 2008 agora, mas seria interessante saber como diferentes bancos de dados lidam com esses problemas.

Caso o impacto seja muito baixo - como eu esperaria, ajudaria a obter alguns bons argumentos (apoiados com links?) Para convencer meu DBA de que essa paranóia de campo longo não é realmente necessária.

Caso seja, estou aqui para aprender :-)

sql-server-2008 database-design
  • 7 respostas
  • 15432 Views
Martin Hope
Andrew Shepherd
Asked: 2011-01-24 14:19:35 +0800 CST

Usando o SQL Profiler em um banco de dados que está em produção

  • 28

Como desenvolvedor, uso o SQL Profiler com bastante frequência. É uma boa ferramenta de depuração, tanto para rastrear o que meu código está fazendo quanto para analisar problemas de desempenho.

Mas sempre usei no meu ambiente de desenvolvimento , e de forma bem controlada.

  • Iniciar meu aplicativo e colocá-lo em um estado específico
  • Inicie um rastreamento no criador de perfil
  • Executar uma sequência específica de ações em meu aplicativo
  • Pare o rastreamento e examine os resultados.

O SQL Profiler pode ser usado de forma prática em um ambiente de produção?

Minha primeira preocupação é que isso degradaria o desempenho.

Minha segunda preocupação é que, por estar em produção, você não está acionando as ações interessantes em si. Você teria que deixar o criador de perfil em execução por um longo período e depois analisar os resultados. O conjunto de resultados se tornaria muito pesado? (Ocupando muito espaço em disco e sendo muito difícil de consultar).

Alguém usa o SQL Profiler em produção?

sql-server profiler
  • 4 respostas
  • 18839 Views
Martin Hope
garik
Asked: 2011-01-06 12:44:14 +0800 CST

Código para simular deadlock

  • 28

Estou testando minha aplicação preciso de algum código estável que simule o deadlock no site do banco de dados (script sql se possível).

Obrigada.

ADICIONADO:

Reproduzindo deadlocks envolvendo apenas uma tabela

sql-server deadlock
  • 3 respostas
  • 37145 Views
Martin Hope
Brian Ballsun-Stanton
Asked: 2011-01-04 22:25:41 +0800 CST

Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?

  • 28

As topologias dominantes da modelagem de Data Warehouse (Star, Snowflake) são projetadas tendo em mente relacionamentos um-para-muitos. A legibilidade, o desempenho e a estrutura da consulta são prejudicados severamente quando confrontados com um relacionamento muitos-para-muitos nesses esquemas de modelagem.

Quais são algumas maneiras de implementar uma relação muitos-para-muitos entre dimensões ou entre a tabela de fatos e uma dimensão em um data warehouse e quais compromissos eles infligem em relação à granularidade necessária e ao desempenho da consulta?

database-design data-warehouse
  • 5 respostas
  • 18443 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