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

Michael Cherevko's questions

Martin Hope
Michael Cherevko
Asked: 2023-07-04 20:53:29 +0800 CST

Compreendendo o comportamento $dateAdd/$dateSubtract no mongodb

  • 3

Estou tentando entender porque $dateaddfunciona com $exprmas não sem:

Este código retorna o conjunto de resultados:

db.getCollection("CollectionName").aggregate(
[
    {
        "$sort" : {
            "_id" : NumberInt(-1)
        }
    }, 
   {"$match": 
       {"$expr":
              {
                 $gte:
                    [ "$CreateDate",
                      {
                         $dateAdd:
                            {
                               startDate: ISODate(),
                               unit: "hour",
                               amount: -1
                            }
                       }
                    ]
              }
      }
   }
]);

Enquanto este não é (conjunto de resultados vazio):

db.getCollection("CollectionName").aggregate(
[
    {
        "$sort" : {
            "_id" : NumberInt(-1)
        }
    }, 
   {"$match": 
       {"CreateDate": {
                      //"$gte" : ISODate("2023-07-04T12:25:00.000+0000") --works also
                      "$gte" : {$dateAdd:
                                    {
                                       startDate: ISODate(),
                                       unit: "hour",
                                       amount: -1
                                    }
                                }
                      }
                        
       }                    
   }
]);
  • Como escrevi no exemplo, substituir $dateaddpor valor codificado também funciona.
  • A versão do MongoDB é 5.0.14
mongodb
  • 1 respostas
  • 17 Views
Martin Hope
Michael Cherevko
Asked: 2021-04-22 04:52:35 +0800 CST

Existe uma maneira de dizer ao otimizador para não usar o índice para leituras?

  • 0

É claro que posso simplesmente descartar e recriar ou desativá-lo e reconstruí-lo.
Mas para tabelas grandes pode levar tempo e para tabelas críticas pode causar problemas.
Existe alguma maneira "mais sofisticada" de dizer ao sql para manter os dados do índice (+ manipular atualizações\inserções) sem usá-lo?
Então, se necessário, ele pode ser "habilitado" imediatamente?

sql-server index
  • 1 respostas
  • 60 Views
Martin Hope
Michael Cherevko
Asked: 2019-11-15 00:22:55 +0800 CST

Reduzindo varreduras de tabela usando as funções group by e window

  • 3

Há um código que estou tentando melhorar que se parece com isso (exemplo simples):

SELECT    DISTINCT a.col_a
         ,COALESCE(b1.col_c, b2.col_c, b3.col_c)
FROM      tab_a a
LEFT JOIN tab_b b1
          ON a.col_a = b1.col_a
             AND b1.col_b = 'blabla1'
LEFT JOIN tab_b b2
          ON a.col_a = b2.col_a
             AND b2.col_b = 'blabla2'
LEFT JOIN tab_b b3
          ON a.col_a = b3.col_a
             AND b3.col_b = 'blabla3';

Você pode usar o seguinte script para recriar essas tabelas

CREATE TABLE tab_a(col_a int)
CREATE TABLE tab_b(col_a INT, col_b VARCHAR(10), col_c INT)

INSERT INTO dbo.tab_a ( col_a ) VALUES ( 1 ), ( 2 ), ( 3 );

INSERT INTO dbo.tab_b ( col_a
                       ,col_b
                       ,col_c )
VALUES ( 1, 'blabla1', 1 )
      ,( 1, 'blabla2', 3 )
      ,( 1, 'blabla2', 5 )
      ,( 2, 'blabla2', NULL )
      ,( 2, 'blabla3', 5 );

Como posso alterá-lo para 1 join + talvez a função de janela e como reescrever a parte coalesce . Só para explicar, o plano atual mostra 3 varreduras tab_b, quero reduzi-lo para 1.

sql-server sql-server-2016
  • 3 respostas
  • 435 Views
Martin Hope
Michael Cherevko
Asked: 2019-09-11 03:31:38 +0800 CST

Auditoria do repositório de consultas

  • 2

Usamos frequentemente o recurso de plano de força de armazenamento de consultas.
Gostaríamos de auditar quando e quem forçou cada plano.
É necessária uma sessão de eventos estendidos para auditar este evento
ou há dmvs ou visualizações de catálogo com essas informações específicas?

sql-server sql-server-2016
  • 1 respostas
  • 132 Views
Martin Hope
Michael Cherevko
Asked: 2017-02-17 01:21:12 +0800 CST

Controle avançado de fluxo de trabalho

  • 2

Eu quero criar um trabalho com duas etapas:
1. Sucesso - vá para a etapa dois, falha - exit(f).
2. Sucesso - saída(s), falha - vá para a etapa um, mas se esta etapa falhar mais de uma vez - saída(f).
O pensamento inicial era consultar algum tipo de ID de execução de trabalho na etapa um e, se houver quatro (ou mais) linhas para esse ID, saia com falha, mas não existe ID de execução.
Qual é a melhor maneira de implementar essa lógica?

sql-server sql-server-2014
  • 1 respostas
  • 110 Views
Martin Hope
Michael Cherevko
Asked: 2016-11-21 00:59:49 +0800 CST

Passando NULL para variáveis ​​SSIS

  • 5

Estou construindo um pacote para executar um procedimento com parâmetros de uma tabela de configuração.

Criei duas caixas Executar Tarefa SQL. Um preenche as variáveis ​​SSIS da tabela de configuração. A segunda executa o procedimento com essas variáveis.

Estou enfrentando o seguinte comportamento. Variáveis ​​inteiras têm um 0 como valor padrão e strings uma string vazia. Mesmo depois de obter NULL da tabela de configuração, essas variáveis ​​mantêm seus valores.

Como posso alterar esse comportamento para aplicar a lógica do SQL Server de NULL como um "valor" padrão ou apenas para habilitar NULL que eles obtêm da tabela de configuração para substituir seu valor padrão?

sql-server sql-server-2014
  • 1 respostas
  • 7858 Views
Martin Hope
Michael Cherevko
Asked: 2016-07-22 03:33:13 +0800 CST

Filtrando eventos estendidos com tabela de configuração

  • 2

Criei uma sessão EE para auditar logins, mas há muitos logins que preciso filtrar.
Gostaria de saber se existe uma opção melhor (como criar tabela conf. com logins indesejados e filtrar sqlserver.usernameusando esses valores) do que apenas adicioná-los um por um via gui\script.

sql-server-2014 extended-events
  • 2 respostas
  • 457 Views
Martin Hope
Michael Cherevko
Asked: 2016-05-22 21:51:10 +0800 CST

Capturar duas mensagens de erro/jogar na tabela

  • 3

Meu objetivo é detectar erros de tarefas de backup na tabela de monitoramento.
O problema é que há casos em que a instrução de backup retorna mais de um erro, então ERROR_MESSAGE() não é suficiente:

Msg 3201, Nível 16, Estado 1, Linha 1 Não é possível abrir o dispositivo de backup '...' Erro 3 do sistema operacional (O sistema não pode encontrar o caminho especificado.).

Msg 3013, Nível 16, Estado 1, Linha 1 BACKUP DATABASE está terminando de forma anormal.

Posso usar o throw para capturar as duas mensagens, mas existe uma maneira fácil de inserir a saída do throw na tabela ou superar esse problema de outra maneira?

sql-server sql-server-2014
  • 3 respostas
  • 1773 Views
Martin Hope
Michael Cherevko
Asked: 2016-03-03 00:48:02 +0800 CST

A função da janela não funciona em linhas não selecionadas

  • 2

Estou criando um procedimento de troca automática de partições.
Estou criando uma tabela que se parece com isso:

CREATE TABLE #MaxPartitionRows
    (MaxRows BIGINT NOT NULL,
    PNumber INT NOT NULL, 
    PFName SYSNAME NOT NULL,
    Value VARCHAR(30) NOT NULL)

Estou usando-o para decidir se devo mesclar partições ou não.
As colunas são: máximo de linhas em tabelas por função de partição, número de partição, função de partição e valor de limite.
A lógica é mesclar a partição somente se a próxima partição também estiver vazia.
Então eu tentei esta consulta:

 SELECT @vcPartitionFunction    = PFName,
    @vcBoundaryValue        = Value,
    @NextPartitionRowNum    = LEAD(MaxRows) OVER (ORDER BY PNumber)
FROM #MaxPartitionRows
WHERE PNumber = @iMinPartitionNumberToSwitchOut

O problema que enfrentei é que @NextPartitionRowNum obtém NULL como valor, mesmo que haja linhas na tabela com número de partição maior.
Meu palpite é que o mecanismo não precisa verificar a próxima linha, então ele retorna NULL .
Essa é a suposição correta?
Neste caso, a solução alternativa é simples, basta usar

SELECT @NextPartitionRowNum = MaxRows 
    FROM #MaxPartitionRows
    WHERE PNumber = @iMinPartitionNumberToSwitchOut + 1

Mas e se eu não pudesse fazer isso?

sql-server sql-server-2014
  • 1 respostas
  • 60 Views
Martin Hope
Michael Cherevko
Asked: 2016-02-04 22:56:47 +0800 CST

Permissões mais restritivas para consulta de exibição com servidor vinculado

  • 3

Criei view para consultar outro servidor via servidor vinculado (SQL Server 2014).

Preciso conceder permissões aos desenvolvedores para usar esta exibição.
Conceder apenas select não é suficiente e eles obtiveram o seguinte erro:

O acesso ao servidor remoto foi negado porque não existe mapeamento de login.

Qual é a permissão mais restrita que posso conceder a eles para selecionar nesta exibição?

Usamos um login SQL para conectar ao servidor vinculado (ser feito usando esse contexto de segurança) e posso consultar essa exibição com meu usuário. Também posso consultar essa exibição com meu usuário do Active Directory. Não tentei me conectar para acessar o servidor vinculado com o login do servidor vinculado, mas meu usuário AD não conseguiu se conectar ao servidor vinculado, se houvesse algum problema com o login de conexão.

Para fins de teste, concedi sysadmin a esse usuário. Ele pode consultar essa exibição, portanto, é definitivamente um problema de permissão. Antes de conceder sysadmin , o usuário tinha apenas public , sem permissões especiais no nível do servidor e apenas db_reader no banco de dados da exibição.

sql-server sql-server-2014
  • 2 respostas
  • 1510 Views
Martin Hope
Michael Cherevko
Asked: 2016-01-13 06:42:23 +0800 CST

Usando gatilhos ddl com tabelas na memória

  • 3

Eu criei o gatilho ddl do escopo do servidor para auditar as atividades do usuário no servidor.
Agora, se alguém tentar criar uma tabela na memória, a instrução falhará com o seguinte erro:

Error SQL72014: .Net SqlClient Data Provider: Msg 12332, Level 16, State 107,
Line 1 Database and server triggers on DDL statements DROP and CREATE are not
supported with memory optimized tables.

Posso criar um gatilho ddl que irá ignorar ações em tabelas na memória?

sql-server sql-server-2014
  • 1 respostas
  • 2365 Views
Martin Hope
Michael Cherevko
Asked: 2015-02-27 04:07:53 +0800 CST

Encontrando a fonte de permissões do grupo AD

  • 1

Temos um grupo de AD como Login em vários servidores, geralmente como sysadmin,
mas encontrei um servidor que esse login não tem acesso a nenhum DB e tem função pública de servidor apenas.
Conversei com um membro deste grupo sobre esse problema
e ele me disse que tem acesso aos bancos de dados deste servidor.
E acabou abrindo o SSMS como usuário diferente (usando suas credenciais de AD) na minha estação local,
ele pode selecionar, atualizar tabelas neste servidor, até mesmo encolher um arquivo de log (mas não pode ver os logins, exceto sa e este grupo).
Não consigo encontrar uma fonte para essas permissões:
não há login\usuário com suas credenciais,
existem outros grupos AD, mas se eu revogar a conexão deste grupo,
ele não poderá mais se conectar a este servidor.
A função de servidor público só tem permissão para visualizar qualquer banco
de dados A função de banco de dados público não tem permissões no esquema dbo O
banco de dados não está em contenção parcial....
Onde mais posso procurar uma fonte das permissões deste Login?
*SQL Server 2012 em meus computadores e servidores.

Eu usei esta consulta para encontrar este login

   USE [master]
GO

DECLARE @username sysname
DECLARE @objname sysname
DECLARE @found integer
DECLARE @sql nvarchar(4000)
DECLARE @results TABLE (Login sysname)

SET @username = ' '
WHILE @username IS NOT NULL
BEGIN
SELECT @username = MIN(name)
FROM master.dbo.syslogins WITH (NOLOCK)
WHERE sysadmin = 0
AND securityadmin = 0
AND serveradmin = 0
AND setupadmin = 0
AND processadmin = 0
AND diskadmin = 0
AND dbcreator = 0
AND bulkadmin = 0
AND name > @username
AND Name NOT LIKE N'NT %'
AND Name NOT LIKE N'##%'
-- this is the list of non system logins
-- ids in server roles may not have corresponding users
-- any database but they should not be removed
SET  @found = 0

IF @username IS NOT NULL
    BEGIN
    --  now we search through each non system database
    --  to see if this login has database access
    SET @objname = ''
    WHILE @objname IS NOT NULL
    BEGIN
        SELECT @objname = MIN( name )
        FROM master.dbo.sysdatabases WITH (NOLOCK)
        WHERE
        name > @objname
        AND DATABASEPROPERTYEX(name, 'status') = 'ONLINE'

        IF @objname IS NOT NULL
        BEGIN
            SET @sql = N'SELECT @found = COUNT(*) FROM [' + @objname
            + N'].dbo.sysusers s WITH (NOLOCK) JOIN master.dbo.syslogins x WITH (NOLOCK)
            ON s.sid = x.sid WHERE hasdbaccess = 1 AND x.name = '''+ @username + ''''
            EXEC sp_executesql @sql,N'@found Int OUTPUT',@found OUTPUT
            --SELECT @found, @objname, @username
            IF @found IS NOT NULL AND @found > 0
                SET @objname = 'zzzzz'  -- terminate as a corresponding user has been found
        END
    END

    IF @found = 0
    BEGIN
    INSERT INTO @results
    SELECT @username
    END
END
END

SELECT SERVERPROPERTY('ServerName') ServerName ,Login
FROM @results r
ORDER BY Login
GO
sql-server sql-server-2012
  • 2 respostas
  • 1012 Views
Martin Hope
Michael Cherevko
Asked: 2014-07-10 00:35:11 +0800 CST

Enviando um e-mail quando todos os trabalhos forem concluídos com sucesso

  • 0

Preciso criar tarefas de backup em várias instâncias, gostaria de saber se há alguma maneira de enviar uma única notificação por e-mail somente quando as tarefas de todas as instâncias forem concluídas com êxito.

sql-server sql-server-2012
  • 1 respostas
  • 381 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