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
Evan Appleby
Asked: 2015-07-06 17:26:05 +0800 CST

Como particionar a tabela existente no postgres?

  • 42

Gostaria de particionar uma tabela com mais de 1 milhão de linhas por intervalo de datas. Como isso é feito normalmente sem exigir muito tempo de inatividade ou correr o risco de perder dados? Aqui estão as estratégias que estou considerando, mas aberto a sugestões:

  1. A tabela existente é o mestre e os filhos herdam dela. Com o tempo, mova os dados do mestre para o filho, mas haverá um período de tempo em que alguns dos dados estarão na tabela mestra e outros nos filhos.

  2. Crie uma nova tabela mestre e filhas. Crie uma cópia dos dados na tabela existente nas tabelas filhas (para que os dados residam em dois locais). Depois que as tabelas filhas tiverem os dados mais recentes, altere todas as inserções para apontar para a nova tabela mestre e exclua a tabela existente.

postgresql optimization
  • 2 respostas
  • 68731 Views
Martin Hope
Pratyush Dhanuka
Asked: 2014-08-28 00:41:52 +0800 CST

Desempenho de aplicação externa vs junção esquerda

  • 42

Estou usando o SQL SERVER 2008 R2

Acabei de encontrar o APPLY no SQL e adorei como ele resolve problemas de consulta para tantos casos,

Muitas das tabelas que eu estava usando 2 left join para obter o resultado, consegui entrar em 1 outer apply.

Eu tenho uma pequena quantidade de dados em minhas tabelas de banco de dados locais e, após a implantação, o código deve ser executado em dados pelo menos 20 vezes grandes.

Estou preocupado que a aplicação externa possa demorar mais do que as 2 condições de junção esquerda para grande quantidade de dados,

Alguém pode dizer como exatamente o apply funciona e como isso afetará o desempenho em dados muito grandes, se possível algumas relações proporcionais com o tamanho de cada tabela como proporcional a n1^1 ou n1^2 ... onde n1 é o número de linhas na tabela 1.

Aqui está a consulta com 2 joins à esquerda

select EC.*,DPD.* from Table1 eC left join
  (
   select member_id,parent_gid,child_gid,LOB,group_gid,MAX(table2_sid) mdsid from Table2
   group by member_id,parent_gid,child_gid,LOB,group_gid

  ) DPD2 on DPD2.parent_gid = Ec.parent_gid
        AND DPD2.child_gid = EC.child_gid
        AND DPD2.member_id = EC.member_id
        AND DPD2.LOB = EC.default_lob
        AND DPD2.group_gid = EC.group_gid
  left join
  Table2 dpd on dpd.parent_gid = dpd2.parent_gid 
            and dpd.child_gid = dpd2.child_gid
            and dpd.member_id = dpd2.member_id 
            and dpd.group_gid = dpd2.group_gid 
            and dpd.LOB = dpd2.LOB
            and dpd.table2_sid = dpd2.mdsid

Aqui está a consulta com aplicação externa

select * from Table1 ec   
OUTER APPLY (
      select top 1 grace_begin_date,retroactive_begin_date,Isretroactive
                    from Table2 DPD 
                    where DPD.parent_gid = Ec.parent_gid
                    AND DPD.child_gid = EC.child_gid
                    AND DPD.member_id = EC.member_id
                    AND DPD.LOB = EC.default_lob
                    AND DPD.group_gid = EC.group_gid
                    order by DPD.table2_sid desc
     ) DPD 
sql-server join
  • 2 respostas
  • 99998 Views
Martin Hope
MickeyfAgain_BeforeExitOfSO
Asked: 2013-09-12 12:14:19 +0800 CST

Injeção de SQL em funções do Postgres vs consultas preparadas

  • 42

No Postgres, as consultas preparadas e as funções definidas pelo usuário são equivalentes a um mecanismo de proteção contra injeção de SQL ?
Existem vantagens particulares em uma abordagem sobre a outra?

postgresql plpgsql
  • 1 respostas
  • 28080 Views
Martin Hope
zabouti
Asked: 2013-08-20 19:09:12 +0800 CST

O listen_addresses pode realmente ser definido como uma lista?

  • 42

Eu tenho uma VM com endereço IP 192.168.0.192 executando postgreSQL.

se eu especificar

listen_addresses = '*'

então posso me conectar de outra VM em 192.168.0.191 e de localhost.

Mas não consigo usar uma lista para dizer ao postgreSQL para usar esses dois endereços. Se eu alterar listen_addresses para uma lista:

listen_addresses = '192.168.0.191, localhost'

então não consigo mais conectar de 192.168.0.191.

Percebo que quase todos os exemplos no stackexchange definem listen_addresses como '*'. Isso ocorre porque o formulário de lista não funciona?

postgresql
  • 4 respostas
  • 54861 Views
Martin Hope
FrogEye
Asked: 2013-02-11 03:39:38 +0800 CST

Diferença entre lote SQL, instrução e RPC?

  • 42

Qual é a diferença entre lote SQL, instrução T-SQL e chamada de procedimento remoto?
Como posso saber se parte do código T-SQL é um lote ou instrução?

sql-server
  • 3 respostas
  • 34089 Views
Martin Hope
RThomas
Asked: 2013-01-29 14:29:53 +0800 CST

Parâmetro Sniffing vs VARIÁVEIS vs Recompilar vs OPTIMIZE FOR UNKNOWN

  • 42

Portanto, tivemos um processo de longa duração causando problemas esta manhã (30 segundos + tempo de execução). Decidimos verificar se a detecção de parâmetros era a culpada. Portanto, reescrevemos o proc e definimos os parâmetros de entrada para variáveis ​​para impedir a detecção de parâmetros. Uma abordagem testada/verdadeira. Bam, o tempo de consulta melhorou (menos de 1 segundo). Ao olhar para o plano de consulta, as melhorias foram encontradas em um índice que o original não estava usando.

Apenas para verificar se não obtivemos um falso positivo, fizemos um dbcc freeproccache no proc original e rodamos novamente para ver se os resultados aprimorados seriam os mesmos. Mas, para nossa surpresa, o proc original ainda rodava devagar. Tentamos novamente com um WITH RECOMPILE, ainda lento (tentamos uma recompilação na chamada para o proc e dentro do próprio proc). Até reiniciamos o servidor (caixa de desenvolvimento obviamente).

Então, minha pergunta é esta... como o sniffing de parâmetro pode ser o culpado quando obtemos a mesma consulta lenta em um cache de plano vazio... não deveria haver nenhum parâmetro para snif???

Em vez disso, estamos sendo afetados pelas estatísticas da tabela não relacionadas ao cache do plano. E se assim for, por que definir os parâmetros de entrada para variáveis ​​ajudaria?

Em testes adicionais, também descobrimos que a inserção de OPTION (OPTIMIZE FOR UNKNOWN) nas partes internas do proc DID obteve o plano aprimorado esperado.

Então, alguns de vocês mais espertos do que eu, podem dar algumas pistas sobre o que está acontecendo nos bastidores para produzir esse tipo de resultado?

Em outra observação, o plano lento também é abortado antecipadamente com razão GoodEnoughPlanFound, enquanto o plano rápido não tem motivo de interrupção antecipada no plano real.

Resumindo

  • Criando variáveis ​​a partir de parâmetros de entrada (1 seg)
  • com recompilação (30+ seg)
  • dbcc freeproccache (mais de 30 segundos)
  • OPÇÃO (OPTIMIZE FOR UKNOWN) (1 seg)

ATUALIZAR:

Veja o plano de execução lenta aqui: https://www.dropbox.com/s/cmx2lrsea8q8mr6/plan_slow.xml

Veja o plano de execução rápida aqui: https://www.dropbox.com/s/b28x6a01w7dxsed/plan_fast.xml

Nota: tabela, esquema, nomes de objetos alterados por motivos de segurança.

sql-server-2008 execution-plan
  • 3 respostas
  • 18108 Views
Martin Hope
flyer88
Asked: 2012-10-23 12:35:50 +0800 CST

Transforme todos os registros de colunas em minúsculas

  • 42

Estou usando o PostgreSQL 9.1 e tenho uma tabela de usuários com uma logincoluna.

nomes de login diferenciam maiúsculas de minúsculas, por exemplo, Bob, Mike, john. Eu gostaria de transformar todos esses registros em minúsculas. Como eu posso fazer isso?

postgresql functions
  • 1 respostas
  • 41956 Views
Martin Hope
Michael Hedgpeth
Asked: 2011-05-07 17:43:38 +0800 CST

Como atribuo um acesso de segurança de grupo inteiro do Active Directory no SQL Server 2008?

  • 42

Eu gostaria de usar a segurança integrada com meu aplicativo interno que está todo em um domínio. Infelizmente, nunca consegui fazer isso funcionar bem. Gostaria de atribuir a um grupo inteiro do Exchange (Active Directory) uma função no SQL Server para acesso de leitura/gravação a determinadas tabelas. Dessa forma eu não precisaria criar um operador sempre que alguém fosse contratado ou deletar um operador sempre que alguém fosse demitido. Isso é possível? Que passos eu tomaria para fazer isso?

sql-server sql-server-2008
  • 4 respostas
  • 133163 Views
Martin Hope
Kyle Brandt
Asked: 2011-03-24 12:56:17 +0800 CST

Noções básicas do plano de execução - confusão de correspondência de hash

  • 42

Estou começando a aprender os planos de execução e estou confuso sobre como exatamente uma correspondência de hash funciona e por que ela seria usada em uma junção simples:

select Posts.Title, Users.DisplayName
From Posts JOIN Users on
Posts.OwnerUserId = Users.Id
OPTION (MAXDOP 1)

insira a descrição da imagem aqui

Pelo que entendi, os resultados da verificação de índice superior tornam-se capazes de hash e cada linha na verificação clusterizada de índice inferior é pesquisada. Eu entendo como as tabelas de hash funcionam pelo menos até certo ponto, mas estou confuso sobre quais valores são exatamente hash em um exemplo como este.

O que faria sentido para mim é que o campo comum entre eles, o id, seja hash - mas se for esse o caso, por que hash um número?

sql-server execution-plan
  • 3 respostas
  • 78649 Views
Martin Hope
BenV
Asked: 2011-01-04 15:20:37 +0800 CST

NULL ou NOT NULL por padrão?

  • 42

No MySQL, é melhor sempre permitir nulos, a menos que você saiba que um campo é obrigatório, ou sempre usar Not Null, a menos que saiba que um campo conterá nulos? Ou não importa?

Eu sei que em alguns DBMSs eles dizem para usar Not Nullo máximo possível porque permitir nulos requer um bit extra (ou byte?) Por registro para armazenar o status Nulo.

mysql null
  • 2 respostas
  • 19261 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