문제

나는에 대해 상속정의 큰 복잡한 설정의 저장 프로시저는 매달 가공에서 아주 큰 세트의 데이터입니다.

우리는 프로세스에서의 디버깅 그래서 그들은 원래 일치하는 과정에 작성되었 VB6.그 이유는 그들은 결정을 다시 쓰기에서 그들 t-sql 기 때문입 vb 과정은 일이며,이 새로운 프로세스 시간이 소요됩니다.

이 모든 것은 괜찮지만,나는 어떻게 이러한 지금 거대한 덩어리의 t-sql 코드(1.5k+선)도 원격으로 읽을 수 있/유지할 수 있습니다.

어떤 경험을 만드는 t-sql 지의 머리 아파이 매우 환영합니다.

도움이 되었습니까?

해결책

먼저 디렉토리를 만드의 전체.sql 파일을 유지하고 있다.추가 설정되어 있습니다.sql 파일을 수정 제어 시스템입니다.SVN 잘 작동합니다.이 있는 도구를 부으로 이러한 데이터베이스를 덮어쓰는 기존의 것을.

테스트 데이터베이스,기준선 보고서 보여주는 것 출력 이달의 처리는 다음과 같이 보일 것입니다.테스트해야에서 양식다.sql 파일에서 제거됩니다.

할 수 있습 리팩터링 프로 당신처럼,그리고 실행하는 테스트는 이후인지 확인하는 올바른 기능이다.

다른 팁

에 대한 포맷/꽤-fying SQL,나는 성공을 http://www.sqlinform.com/ -무료 온라인 버전 시도 할 수 있습니다,그리고 데스크톱 버전도 사용할 수 있습니다.

SQLinForm 자동 SQL 코드 포맷을 위한 모든 주요 데이터베이스(ORACLE,SQL Server,DB2/UDB,Sybase,Informix,PostgreSQL,MySQL 등)많은 포맷 옵션이 있습니다.

Definately 시작하여 포맷 코드,특히 톱.

다음 modularise SQL.꺼내 덩어리로 작은,기술적으로 명명된 절차와 기능에서 자신의 독립 파일이 있습니다.혼자 이렇게 찾을 아주 잘 개선의 이해 큰 SQL 파일이 있습니다.

ApexSQLScript 한 훌륭한 도구입니다 스크립팅을 위해 전체 데이터베이스 확인할 수 있습으로 원본을 제어하고 관리하는 변경합니다.

나 또한 발견되는 문서화 sprocs 지속적으로 당신은 나에 대한 정보를 사용하여 그들에 대한 데이터 소스 코드에 sys.sql_modules-태그를 사용할 수 있습 또는 도움이 어떤 문서는 일부를 공유 할 수 있습니다.

또한,사용한 스키마(하나 또는 여러 데이터베이스)-이것이 정말로 도움을 나누기까지 귀하의 데이터베이스 논리 단위로 지적 건축 문제입니다.

로 큰 코드,나는 최근에 발견 SQL2005CTE 기능에 매우 유용한 것으로 관리하는 코드는 많은 중첩된 쿼리(지 않도 재귀).대신 관리하는 무리의 중첩 및 들여쓰기,Cte 선언할 수 있습 및 구축하고 다음에 사용되는 최종 문입니다.이것에도 도움이 됩 refactoring 것으로 많은 쉽게 제거하는 중복되는 중첩된 쿼리고 열에 있습니다.

저장 프로시저하고 Udf 생명을 관리하기 위한 대규모 코드 기반을 제거하고 어두운 모서리입니다.내가 찾지 못하 전망에 정말 도움이 되지 않기 때문에 매개변수화(Udf 할 수 있는 이러한 경우에 사용하면 결과는 세트를 작고 있습니다.)

시 modularise SQL 가능한 한 많이하고 테스트하는 것입니다 있어 다양한 활동을 반영하기 위하여,리팩터링 및 기능 추가를 할 때 필요합니다.내면의 기쁨을 누리 상속받아 저장 프로시저는 억원 5000 줄이고 나는 아직도에 대한 악몽니다.되면 프로젝트를 통해 나는 인쇄 저장 proc 웃음 destorying X 에서 나무를 처리합니다.중 하나 동안 우리의 회사는 매주대 회 나는 그것을 끝까지 그 경고:성의 전체 길이는 건물이다.Ised 이제는 방법을 쓰지 않고 유지하는 저장합니다.

한 가지 당신이 할 수 있는 자동화된 스크립트를 저장하는 모든 변경 사항을 제어 소스 검토할 수 있도록 변경 내용 절차(를 사용하여 비교에 있는 이전 및 현재 버전)

그것은 확실히 무료로하지 않습니다,하지만 유지하기 위한 T-SQL 포맷에서 일관된 방식으로,레드 게이트의 소프트웨어 SQL 프롬프트 은 매우 편리합니다.한 proc 의 구문은 올바른의 키(Ctrl+K,Y)이를 포맷하 모니다.이 옵션을 제어하는 방법 SQL 은 포맷됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top