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 / Perguntas / 21913
Accepted
Warren  P
Warren P
Asked: 2012-08-03 12:47:44 +0800 CST2012-08-03 12:47:44 +0800 CST 2012-08-03 12:47:44 +0800 CST

Documentando uma rede gigante de procedimentos armazenados inter-relacionados em um banco de dados MS SQL: qual ferramenta ou formato? [duplicado]

  • 772
Esta pergunta já tem respostas aqui :
Como você documenta seus bancos de dados? (18 respostas)
Fechado há 2 anos .

Espero que esta seja uma pergunta com uma resposta mais curta do que "Leia um livro de 1000 páginas", mas, se essa for a situação real, então me bata com ela.

Não sou um DBA de verdade, sou um desenvolvedor de software que está percebendo que precisamos de um DBA e, no entanto, a loja em que trabalho não tem DBAs. No entanto, nosso design de banco de dados MS SQL, incluindo vários procedimentos armazenados principais, é uma bagunça gigante. Os procedimentos armazenados são lentos, suspeitamos que eles tenham bugs, mas nem sabemos como eles devem funcionar, então não sabemos como corrigi-los.

Para começar, decidi que documentaremos como tudo deve funcionar, depois iniciaremos o teste de unidade e criaremos um conjunto de testes de unidade que ajudam a provar que os procedimentos armazenados realmente funcionam. A lógica que eles executam é uma parte fundamental de nosso aplicativo, pode-se dizer, são as "jóias da coroa" do principal produto de nossa empresa, e o modo como ele funciona é completamente não documentado.

Estou procurando a documentação técnica específica que um DBA profissional pode esperar que exista, ou que possa escrever a si mesmo, se necessário, para entender uma rede gigante de procedimentos armazenados que chamam uns aos outros.

  1. Qual é o formato usual para documentar um grande procedimento armazenado? Descrição dos valores esperados para cada parâmetro In (ou seja, "pré-condições", "pós-condições", ou seja, para parâmetros booleanos, o que muda quando você liga ou desliga, etc?)

  2. Como alguém costuma documentá-lo? Somente comentários SQL? Ferramentas externas que são específicas para o propósito? "Documentação" externa? Não temos ferramentas SQL, além do MS SQL Management studio, mas estamos nos perguntando se existe uma ferramenta que torne melhor a compreensão, a documentação e o teste de nosso ambiente. Talvez seja uma maneira melhor de fazer minha pergunta; Que ferramenta eu preciso para resolver nossa bagunça?

Nosso objetivo é ser capaz de:

R. Use a documentação que geramos, ou quaisquer ferramentas que adicionamos ao nosso ambiente, para ajudar a entender como os procedimentos devem funcionar, para que possamos criar cobertura de teste de unidade para os procedimentos armazenados.

B. Mostre aos desenvolvedores de aplicativos cliente como chamar corretamente cada um desses procedimentos armazenados complexos.

C. Teste de unidade nossos procedimentos armazenados.

sql-server sql-server-2008-r2
  • 2 2 respostas
  • 3905 Views

2 respostas

  • Voted
  1. Best Answer
    mrdenny
    2012-08-03T20:45:42+08:002012-08-03T20:45:42+08:00

    O mais importante sobre a documentação é que ela faça sentido para você. Não há uma maneira realmente padrão de fazer isso.

    Se você tem muitos procedimentos armazenados que se conectam uns aos outros, começando com um diagrama do Visio com um objeto para cada procedimento, os links entre eles para que você possa acompanhar como as coisas vão de um procedimento para outro provavelmente é um bom começo.

    • 4
  2. crokusek
    2012-08-04T23:37:10+08:002012-08-04T23:37:10+08:00

    A ferramenta RedGate SQL Dependency Tracker pode ser útil. Ele pode mostrar graficamente quais objetos do banco de dados (SP's/views/tables) dependem uns dos outros. Eu o usei enquanto trabalhava com algumas tabelas com as quais não estava familiarizado para determinar a ordem na qual desabilitar as restrições.

    Eu também executei em todo o banco de dados apenas por diversão e foi muito TMI. Se você for capaz de focar em áreas específicas do banco de dados que não são totalmente interdependentes, pode ser útil. A árvore de dependências tem opções para se organizar visualmente usando diferentes algoritmos e só isso já faz uma avaliação valer a pena.

    Rastreamento. Outra opção é gravar linhas de log no início e no final de procedimentos armazenados críticos. Cada linha pode incluir uma data, um "nível de detalhe", um "contexto" de melhor palpite, "subcontexto" e nome do procedimento. e contagens de linhas. Provavelmente será uma bagunça (pense no log de eventos do Windows), mas talvez seja útil em algumas seções. Se um SP for usado para realmente fazer a inserção de log, ele poderá ser ligado/desligado facilmente sem muita carga adicional (ymmv).

    Nota lateral, uma vez carreguei a impressora com o papel legal de 11 x 17, encontrei uma fonte pequena e agradável e algum recuo lógico para resumir um fluxo complexo de dados/SP em ~ 5 páginas de algum pseudo-SQL. Tenho certeza que acabei me referindo a ele apenas algumas vezes e ninguém mais ousou chegar perto, pois lá não era padrão e é difícil confiar em algo não integrado e que pode ficar desatualizado. O processo de documentação forçou uma familiaridade com o código!

    • 4

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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