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

Vlad Mihalcea's questions

Martin Hope
Vlad Mihalcea
Asked: 2017-08-24 01:11:22 +0800 CST

É REALMENTE possível que o pedido não seja garantido para esta tabela derivada redundante específica?

  • 13

Me deparei com essa pergunta em uma conversa no Twitter com Lukas Eder .

Embora o comportamento correto seja aplicar a cláusula ORDER BY na consulta mais externa, porque, aqui, não estamos usando DISTINCT, GROUP BY, JOIN ou qualquer outra cláusula WHERE na consulta mais externa, por que um RDBMS não passaria apenas a dados de entrada como foram classificados pela consulta interna?

SELECT * 
FROM (
    SELECT * FROM table ORDER BY time DESC
) AS t

Ao executar este exemplo no PostgreSQL, pelo menos, você obtém o mesmo Plano de Execução para a consulta interna e este exemplo de tabela derivada, bem como o mesmo conjunto de resultados.

Então, eu diria que o Planner simplesmente descartará a consulta mais externa porque é redundante ou simplesmente passará pelos resultados da tabela interna.

Alguém acha que pode não ser assim?

mysql postgresql
  • 4 respostas
  • 4456 Views
Martin Hope
Vlad Mihalcea
Asked: 2016-09-03 07:29:07 +0800 CST

O PostgreSQL explica o tempo de execução da análise considera o tempo de busca

  • 0

Tenho alguns testes no GitHub que registram quanto tempo leva para executar uma consulta e buscar todos os resultados.

Se eu verificar o plano de execução, recebo:

Index Scan using post_comment_pkey on post_comment postcommen0_  (cost=0.29..2716.48 rows=34752 width=43) (actual time=6.767..14.352 rows=34880 loops=1)
  Filter: (post_id = 1)
  Rows Removed by Filter: 34880
Planning time: 0.659 ms
Execution time: 14.840 ms

Portanto, a consulta está usando um índice e sendo executada em 15 ms.

No entanto, no lado Java, após o ResultSet ser buscado e processado, a medição de tempo indica que demorou 90 ms.

A única explicação seria que o Explain Analyze não considera o tempo de busca e a busca de 34880 registros leva de 50 a 60 ms.

Isso está correto?

postgresql performance
  • 1 respostas
  • 1219 Views
Martin Hope
Vlad Mihalcea
Asked: 2015-08-13 09:03:19 +0800 CST

O Oracle lança intermitentemente "ORA-12516, TNS: o ouvinte não pôde encontrar o manipulador disponível com a pilha de protocolo correspondente"

  • 6

Ao testar o mecanismo de estabelecimento de conexão do Oracle XE, me deparei com o seguinte problema. Embora as conexões sejam fechadas em cada iteração, após 50 a 100 conexões, o Oracle começa a lançar intermitentemente a seguinte exceção:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12516, TNS:listener could not find available handler with matching protocol stack
 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:157) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0]
    at com.vladmihalcea.book.high_performance_java_persistence.jdbc.connection.OracleConnectionCallTest.test(OracleConnectionCallTest.java:57) [test-classes/:na]

O teste pode ser encontrado no GitHub :

for (int i = 0; i < callCount; i++) {
    try {
        long startNanos = System.nanoTime();
        try (Connection connection = dataSource.getConnection()) {
        }
        timer.update(System.nanoTime() - startNanos, TimeUnit.NANOSECONDS);
        sleep(waitMillis);
    } catch (SQLException e) {
        LOGGER.info("Exception on iteration " + i, e);
    }
}

Se eu tentar abrir/fechar conexões com um passo de espera de 35 ms, tudo funciona bem. Se eu diminuir a espera para 10 ms a exceção começa a ser lançada de vez em quando.

Um possível motivo pode ser explicado por este artigo: http://www-01.ibm.com/support/docview.wss?uid=swg21603472

Um dos motivos mais comuns para os erros TNS-12516 e/ou TNS-12519 serem relatados é o número máximo configurado de limitação de PROCESSES e/ou SESSIONS sendo atingido. Quando isso ocorre, os manipuladores de serviço para o ouvinte TNS ficam "Bloqueados" e nenhuma nova conexão pode ser feita. Uma vez que o TNS Listener recebe uma atualização do processo PMON associado à instância do banco de dados informando ao TNS Listener que os limites estão abaixo do limite configurado e o banco de dados agora está aceitando retomadas de conectividade de conexões.

  • O PMON é responsável por atualizar o listener com informações sobre uma determinada instância, como informações de carga e despachante. A carga máxima para conexões dedicadas é determinada pelo parâmetro PROCESSES. A frequência com que o PMON fornece informações SERVICE_UPDATE varia de acordo com a carga de trabalho da instância. O intervalo máximo entre essas atualizações de serviço é de 10 minutos.
  • O ouvinte conta o número de conexões que estabeleceu com a instância, mas não obtém imediatamente informações sobre as conexões que foram encerradas. Somente quando o PMON atualiza o listener via SERVICE_UPDATE o listener é informado da carga atual. Como isso pode levar até 10 minutos, pode haver uma diferença entre o carregamento da instância atual de acordo com o ouvinte e o carregamento real da instância.

Quando o ouvinte acredita que o número atual de conexões atingiu a carga máxima, ele pode definir o estado do manipulador de serviço para uma instância como "bloqueado" e começar a recusar conexões de cliente de entrada com um dos seguintes erros: ora-12519 ou ora-1251 "

Eu queria saber se isso é algum tipo de bug ou é simplesmente como o Oracle foi projetado para funcionar.

Atualizar

No Oracle 11g Enterprise Edition, ele funciona bem, então é uma limitação do XE.

Fixar

Usar o pool de conexões é provavelmente a melhor maneira de corrigir esse problema, o que também reduz o tempo de aquisição da conexão e aumenta os picos de tráfego.

oracle connections
  • 1 respostas
  • 75790 Views
Martin Hope
Vlad Mihalcea
Asked: 2015-08-06 05:37:58 +0800 CST

O que o Oracle usa para lidar com uma conexão de cliente (processo ou thread)?

  • 2

O SQL Server 2016 e o ​​MySQL 5.7 usam manipulação de conexão baseada em thread.

O PostgreSQL 9.5 usa um processo de sistema operacional para cada conexão individual.

De acordo com a documentação do Oracle 12c, não está claro se um modelo baseado em thread ou baseado em processo é usado. Então, como o Oracle lida com as conexões do usuário?

oracle connectivity
  • 1 respostas
  • 512 Views
Martin Hope
Vlad Mihalcea
Asked: 2015-04-28 06:00:04 +0800 CST

O MySQL oferece suporte à consulta do ID da transação em execução atual

  • 3

O PostgreSQL suporta a recuperação do ID da transação em execução atual usando uma consulta como esta:

select txid_current();

O MySQL tem algum equivalente?

mysql postgresql
  • 2 respostas
  • 1658 Views
Martin Hope
Vlad Mihalcea
Asked: 2014-06-29 01:46:02 +0800 CST

Qual é o tipo de coluna UUID mais eficiente

  • 20

Para armazenar um UUID de 128 bits, existem várias opções de armazenamento:

  1. uma coluna de byte[16]
  2. duas colunas bigint/long(64 bits)
  3. uma coluna CHAR(36) - 32 dígitos hexadecimais + 4 traços.
  4. uma coluna específica do banco de dados UUID, se db suportar

Do ponto de vista da indexação, quais são os mais eficientes? Se o banco de dados não suportar um tipo uuid dedicado, qual de 1, 2, 3 são os melhores candidatos?

sql-server mysql
  • 3 respostas
  • 18337 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