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
Heinzi
Asked: 2020-04-28 02:28:48 +0800 CST

SQL Server 2019 executa código inacessível

  • 34

[Atualização: esta pergunta descreve um bug que foi corrigido na atualização cumulativa 5 para SQL Server 2019. ]


Considere o seguinte exemplo de reprodução ( fiddle ):

CREATE FUNCTION dbo.Repro (@myYear int)
RETURNS datetime
AS
BEGIN
    IF @myYear <> 1990
    BEGIN
        RETURN NULL
    END

    DECLARE @firstOfYear datetime;
    SET @firstOfYear = DATEFROMPARTS(@myYear, 1, 1);
    
    IF DATEDIFF(day, @firstOfYear, @firstOfYear) <> 0
    BEGIN
        RETURN NULL
    END

    RETURN @firstOfYear
END
SELECT dbo.Repro(0);

Obviamente, essa função deve retornar o primeiro de janeiro de 1990 se a entrada for 1990, e NULLcaso contrário. Sim, eu sei que DATEDIFF(day, @firstOfYear, @firstOfYear) <> 0é uma operação sem sentido. Este é um mcve para demonstrar um possível bug, não o código de produção.

Agora vamos executar SELECT dbo.Repro(0)no SQL Server 2017 e SQL Server 2019.

Resultado esperado : NULL.

Resultado real no SQL Server 2017 :NULL

Resultado real no SQL Server 2019 :

Msg 289 Nível 16 Estado 1 Linha 1
Não é possível construir o tipo de dados data, alguns dos argumentos possuem valores que não são válidos.

Aparentemente, o SQL Server 2019 executa parte do código abaixo da cláusula de guarda inicial ( IF @myYear <> 1990), mesmo que não devesse.

Minhas perguntas:

  • Esse comportamento é esperado ou encontrei um bug no SQL Server 2019?
  • Se esse for o comportamento esperado, como escrever corretamente uma cláusula de guarda validando os parâmetros de entrada?
sql-server functions
  • 1 respostas
  • 2394 Views
Martin Hope
Victor
Asked: 2018-12-28 10:24:36 +0800 CST

Usar alias de coluna em uma cláusula WHERE não funciona

  • 34

Dada uma tabela userscom dois campos: ide email.

select id, email as electronic_mail 
from (  
        select id, email 
        from users
) t 
where electronic_mail = ''

O Postgres reclama que:

ERROR:  column "electronic_mail" does not exist

O exemplo é apenas para demonstrar o problema que surge. Meu caso real é mais complexo, eu itero através de uma matriz de elementos em uma coluna json, pegando um único valor escalar de cada um. (Posso compartilhar algum código se isso ajudar.)

Eu realmente não entendo qual seria a complicação, provavelmente eu desconheço alguma coisa. Fiquei com a impressão de que colunas com alias podem ser empregadas em uma WHEREcláusula sem problemas?

postgresql subquery
  • 3 respostas
  • 35417 Views
Martin Hope
J.D.
Asked: 2018-06-15 12:25:44 +0800 CST

Se um CTE é definido em uma consulta e nunca é usado, ele faz algum som?

  • 34

Os CTEs não utilizados nas consultas afetam o desempenho e/ou alteram o plano de consulta gerado?

sql-server performance
  • 2 respostas
  • 4063 Views
Martin Hope
nskalis
Asked: 2018-05-18 00:45:13 +0800 CST

postgresql: como definir uma coluna JSONB com valor padrão

  • 34

Não consigo encontrar na documentação como criar uma JSONBcoluna no PostgreSQL que tenha um DEFAULTvalor de um documento json vazio.

Como o acima pode ser declarado na CREATE TABLEdefinição?

postgresql json
  • 2 respostas
  • 47757 Views
Martin Hope
roxrook
Asked: 2012-01-06 05:52:21 +0800 CST

Como devo projetar uma tabela de relacionamento para amizade?

  • 35

Se Afor um amigo de B, devo armazenar os dois valores ABe BA, ou um é suficiente? Quais são as vantagens e desvantagens de ambos os métodos.

Segue minha observação:

  • Se eu mantiver os dois, terei que atualizar ambos quando receber uma solicitação de um amigo.
  • Se eu não mantiver os dois, achei difícil ter que fazer vários JOINcom essa tabela.

Atualmente, mantenho o relacionamento de um jeito.

insira a descrição da imagem aqui

Então o que devo fazer neste caso? Algum conselho?

mysql relational-theory
  • 5 respostas
  • 42688 Views
Martin Hope
jrara
Asked: 2011-12-08 11:28:49 +0800 CST

O esquema dbo deve ser evitado?

  • 35

Quando se trata do esquema dbo:

  • É uma prática recomendada evitar o uso do esquema dbo ao criar objetos de banco de dados?
  • Por que o esquema dbo deve ser evitado ou deveria?
  • Qual usuário de banco de dados deve possuir o esquema dbo?
sql-server sql-server-2008
  • 4 respostas
  • 34069 Views
Martin Hope
jsauni
Asked: 2011-04-04 18:27:23 +0800 CST

Como posso saber se um banco de dados SQL Server ainda está sendo usado?

  • 35

Estamos procurando encerrar uma instância do SQL Server que ainda possui alguns bancos de dados.

Como posso saber se eles ainda estão sendo usados ​​por usuários ou um aplicativo da web?

Encontrei um tópico do fórum que tinha uma consulta T-SQL que você pode executar para recuperar a última data da consulta. Parece funcionar, mas quero saber se essa informação é válida o suficiente para descartar bancos de dados. É isso?

Se você tiver métodos alternativos que ajudariam também.

sql-server t-sql
  • 7 respostas
  • 74039 Views
Martin Hope
Michael McGowan
Asked: 2011-03-20 22:27:29 +0800 CST

Quais são as razões **NÃO** para usar o mecanismo de armazenamento MEMORY no MySQL?

  • 35

Recentemente descobri que o MySQL tem um mecanismo de "memória" que eu não conhecia (a maior parte do meu trabalho de banco de dados é para projetos de hobby, então aprendo o que preciso à medida que prossigo). Parece que essa opção deve me dar um desempenho drasticamente melhorado, então estou me perguntando se há alguma desvantagem relacionada a ela. Os dois que eu conheço são:

  1. Eu preciso ter memória RAM suficiente para manter a(s) tabela(s) em questão.
  2. As tabelas são perdidas se a máquina for desligada.

Acredito que o número 1 não deve ser um problema, pois estou usando o AWS EC2 e posso mudar para um tipo de instância com mais memória, se necessário. Acredito que posso mitigar o nº 2 despejando de volta no disco conforme necessário.

Que outras questões existem? O mecanismo de memória pode ter um desempenho pior do que o MyISAM ou o InnoDB? Acho que li algo que os índices são diferentes com este motor; isso é algo que eu preciso me preocupar?

mysql storage-engine
  • 7 respostas
  • 50298 Views
Martin Hope
Kyle Brandt
Asked: 2011-03-05 13:10:12 +0800 CST

Encontrar consultas que estão causando esperas

  • 35

Dado um certo tipo de espera, como você descobre quais consultas estão causando essas esperas com segurança em um SQL 2008 R2 Server de produção?

Neste caso particular, estou me perguntando async_network_io.

sql-server-2008 waits
  • 2 respostas
  • 16247 Views
Martin Hope
Julien
Asked: 2011-01-05 05:47:14 +0800 CST

Qual é a diferença entre um INNER JOIN e um OUTER JOIN?

  • 35

Sou novo no SQL e queria saber qual é a diferença entre esses dois JOINtipos?

SELECT * 
FROM user u
INNER JOIN telephone t ON t.user_id = u.id

SELECT * 
FROM user u
LEFT OUTER JOIN telephone t ON t.user_id = u.id

Quando devo usar um ou outro?

join
  • 8 respostas
  • 50089 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