MS SQL 데이터베이스에 거대한 상호 관련 저장 프로 시저 웹 문서화 : 어떤 도구 또는 형식?


11

나는 이것이 "1000 페이지 책을 읽는 것"보다 짧은 대답을 가진 질문이기를 바란다. 그러나 그것이 실제 상황이라면 나에게 타격을 준다.

저는 실제 DBA가 아니며 DBA가 필요하다는 사실을 알고있는 소프트웨어 개발자이지만 DBA는 제로가 없습니다. 그러나 여러 핵심 저장 프로 시저를 포함한 MS SQL 데이터베이스 디자인은 큰 혼란입니다. 저장 프로시 저는 느리고 버그가 있다고 생각하지만 어떻게 작동하는지 알지 못하므로 수정 방법을 모릅니다.

처음에는 모든 작업이 어떻게 수행되는지 문서화하기로 결정한 다음 단위 테스트를 시작하고 저장 프로 시저가 실제로 작동하는지 증명하는 단위 테스트 집합을 작성합니다. 그들이 수행하는 논리는 우리 응용 프로그램의 핵심 부분입니다. 우리 회사의 주요 제품의 "크라운 보석"이며 작동 방식은 완전히 문서화되어 있지 않습니다.

전문가 DBA가 서로를 불러 일으키는 거대한 저장 프로 시저 웹을 이해하기 위해 기존 DB가 있거나 필요할 경우 스스로 작성할 수있는 특정 기술 문서를 찾고 있습니다.

  1. 큰 저장 프로 시저를 문서화하기위한 일반적인 형식은 무엇입니까? 각 In 매개 변수에 대한 예상 값 설명 (예 : "사전 조건", "사후 조건", 즉 부울 매개 변수의 경우 켜거나 끌 때 변경되는 내용 등)?

  2. 일반적으로 어떻게 문서화합니까? SQL 주석 만? 목적에 맞는 외부 툴링? 외부 "문서"? MS SQL Management Studio 이외의 SQL 도구는 없지만 환경을 이해하고 문서화하며 테스트하는 도구가 있는지 궁금합니다. 아마도 이것이 내 질문을하는 더 좋은 방법 일 것입니다. 혼란을 해결하려면 어떤 도구가 필요합니까?

우리의 목표는 다음과 같습니다.

A. 절차가 어떻게 작동해야하는지 이해하는 데 도움이되도록 생성 한 문서 나 환경에 추가하는 도구를 사용하여 저장 프로 시저에 대한 단위 테스트 범위를 만들 수 있습니다.

B. 클라이언트 응용 프로그램 개발자에게 이러한 복잡한 저장 프로 시저 각각을 올바르게 호출하는 방법을 보여줍니다.

C. 저장 프로 시저를 단위 테스트합니다.

답변:


4

문서에서 가장 중요한 것은 그것이 당신에게 의미가 있다는 것입니다. 이 작업을 수행하는 표준 방법은 없습니다.

각 프로시 저마다 하나의 개체가 포함 된 Visio 다이어그램으로 시작하여 서로 연결되는 많은 저장 프로 시저가있는 경우 해당 프로 시저를 연결하여 프로 시저에서 프로 시저로 진행되는 방식을 추적 할 수 있습니다.


4

레드 게이트 SQL 종속성 트래커 도구가 도움이 될 수 있습니다. 어떤 데이터베이스 개체 (SP /보기 / 테이블)가 서로 의존하는지 그래픽으로 표시 할 수 있습니다. 제약 조건을 비활성화하는 순서를 결정하기 위해 익숙하지 않은 일부 테이블을 작업하는 동안 사용했습니다.

또한 재미를 위해 전체 데이터베이스에서 실행했으며 TMI 방식이었습니다. 미친 상호 의존성이 아닌 DB의 특정 영역에 집중할 수 있다면 도움이 될 수 있습니다. 의존성 트리에는 다른 알고리즘을 사용하여 시각적으로 구성하는 옵션이 있으며 그 자체만으로도 가치가 있습니다.

트레이싱. 또 다른 옵션은 중요한 저장 프로 시저의 시작과 끝에 로그 라인을 작성하는 것입니다. 각 행에는 날짜, "세부 수준", 최고의 추측 "컨텍스트", "하위 컨텍스트", 프로세스 이름이 포함될 수 있습니다. 행 수. 아마도 엉망이 될 것입니다 (Windows 이벤트 로그를 생각하십시오). 어쩌면 일부 섹션에서 유용 할 것입니다. SP가 실제로 로그 삽입을 수행하는 데 사용되는 경우 추가로드 (ymmv)없이 쉽게 켜고 끌 수 있습니다.

참고로, 나는 한때 멋진 11 x 17 용지를 프린터에 넣었고, 작은 데이터와 SP의 복잡한 흐름을 의사 SQL의 ~ 5 페이지로 요약하는 논리적 인 들여 쓰기를 발견했습니다. 나는 그것이 단지 몇 번만 언급했다는 것을 확신합니다. 표준이 아니고 통합되지 않은 것을 믿기 어렵고 구식이 될 수 없기 때문에 아무도 감히 접근하지 않았습니다. 문서화 프로세스는 코드에 익숙해졌습니다!


나는 이것과 다른 많은 도구들을 평가했다. 지금까지 나는 여전히 손으로하고 있습니다. 따라서 나는 내가 한 일을 반영하는 대답을 받아 들였습니다. 그러나 이것은 시원합니다.
워렌 P

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.