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

Sathyajith Bhat's questions

Martin Hope
Sathyajith Bhat
Asked: 2011-03-15 01:11:07 +0800 CST

Rastreando, depurando e corrigindo contenções de bloqueio de linha

  • 12

Mais tarde, tenho enfrentado muitas disputas de bloqueio de linha. A tabela em disputa parece ser uma tabela específica.

Isso geralmente é o que acontece -

  • Desenvolvedor 1 inicia uma transação na tela inicial do Oracle Forms
  • Desenvolvedor 2 inicia outra transação, de uma sessão diferente usando a mesma tela

~ 5 minutos depois, o front-end parece não responder. A verificação das sessões mostra a contenção de bloqueio de linha. A "solução" que todo mundo joga é matar sessões :/

Como desenvolvedor de banco de dados

  • O que pode ser feito para eliminar as contenções de bloqueio de linha?
  • Seria possível descobrir qual linha de um procedimento armazenado está causando essas contenções de bloqueio de linha
  • Qual seria a diretriz geral para reduzir/evitar/eliminar tais problemas que codificam?

Se esta pergunta parecer muito aberta/insuficiente, sinta-se à vontade para editar/informar-me - farei o possível para adicionar algumas informações adicionais.


A tabela em questão está sob muitos inserts e atualizações, eu diria que é uma das tabelas mais ocupadas. O SP é bastante complexo - para simplificar - ele busca dados de várias tabelas, popula em tabelas de trabalho, muitas operações aritméticas ocorrem na mesa de trabalho e o resultado da mesa de trabalho é inserido/atualizado na tabela em questão.


A versão do banco de dados é Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64 bits. O fluxo da lógica é executado na mesma ordem em ambas as sessões, a transação não é mantida aberta por muito tempo (ou pelo menos eu acho ) e os bloqueios ocorrem durante a execução ativa das transações.


Atualização: a contagem de linhas da tabela é maior do que eu esperava, em cerca de 3,1 milhões de linhas. Além disso, depois de rastrear uma sessão, descobri que algumas instruções de atualização para esta tabela não estão utilizando o índice. Por que é assim - não tenho certeza. A coluna referenciada na cláusula where é indexada. No momento, estou reconstruindo o index.

oracle-10g locked-objects
  • 3 respostas
  • 17258 Views
Martin Hope
Sathyajith Bhat
Asked: 2011-01-18 06:21:58 +0800 CST

Calculando a porcentagem de uma linha sobre a soma total

  • 15

Desculpas pelo título ruim, eu não tinha certeza do que seria um bom título para isso.

Este é atualmente (visualização simplificada dos) dados com os quais estou trabalhando

Agent    |  Commission     
---------|------------
Smith    |    100
Neo      |    200
Morpheus |    300

Preciso calcular a porcentagem da comissão total, pela qual cada agente é responsável.

Assim, para o Agente Smith, a Porcentagem seria calculada como(Agent Smith's commission / Sum(commission)*100

Então, meus dados esperados seriam

Agent    |  Commission   |  % Commission    
---------|---------------|---------------
Smith    |    100        |     17
Neo      |    200        |     33
Morpheus |    300        |     50

Eu tenho uma função retornando a comissão para cada agente. Eu tenho outra função retornando a porcentagem como (Commission/Sum(Commission))*100. O problema é que Sum(commission)é calculado para cada linha e, como essa consulta seria executada em um Data Warehouse, o conjunto de dados seria bastante grande (atualmente, são pouco menos de 2000 registros) e, honestamente, uma abordagem ruim (IMO ).

Existe uma maneira de Sum(Commission)não calcular para cada linha que está sendo buscada?

Eu estava pensando em algo nas linhas de uma consulta de 2 partes, a primeira parte buscaria sum(commission)em uma variável/tipo de pacote e a segunda parte se referiria a esse valor pré-calculado, mas não tenho certeza de como posso fazer isso.

Estou limitado a usar SQL e estou executando o Oracle 10g R2.

aggregate oracle-10g-r2
  • 4 respostas
  • 98781 Views
Martin Hope
Sathyajith Bhat
Asked: 2011-01-12 23:20:06 +0800 CST

Como posso remover bloqueios em um objeto?

  • 6

Uma das minhas consultas está sendo executada em uma contenção de bloqueio de linha. Eu localizei qual tabela está causando isso - então agora qual é o próximo passo? Qual sessão está causando o bloqueio desta tabela? Como removo o bloqueio?

Estou usando o Oracle 10g

oracle-10g locked-objects
  • 1 respostas
  • 12037 Views
Martin Hope
Sathyajith Bhat
Asked: 2011-01-05 05:39:33 +0800 CST

Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • 10

Uma das "práticas" que já vi sendo executada por DBA's em minha organização é tratar uma exportação completa de banco de dados utilizando ferramentas como exp/ expdpcomo backup.

Seria esta uma boa prática? Quais seriam as vantagens de usar RMAN sobre esta abordagem?

oracle backup
  • 3 respostas
  • 2746 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