2009-10-29 3 views
2

학생으로 일하고있는 사이트는 가까운 장래에 재 설계되고 출시 될 예정이며 사이트에서 삭제를 고려할 수있는 테이블을 찾기 위해 사용하는 DB의 모든 테이블을 수동으로 검색하는 작업이 할당되었습니다. Dreamweaver의 모든 HTML 파일 소스 코드를 검색하고 있지만 내 작업을 확인하는 자동화 된 방법이 필요합니다. 이것이 비즈니스 세계에서 어떻게 이루어 지는지에 대한 제안이 있습니까?큰 DB에서 SQL 테이블 제거?

답변

2

사용자가 응용 프로그램에서 이러한 옵션을 선택하지 않기 때문에 코드를 검색 할 때 사용되지 않는 SQL을 찾을 수 있습니다.

대신 데이터베이스에서 감사를 설정하고 실제로 사용되는 SQL을 기록하는 것이 좋습니다. 예 : in Oracle you would do it like this. 다른 주요 데이터베이스 서버는 비슷한 기능을 가지고 있습니다.

로그 데이터에서 어떤 테이블이 사용 중인지뿐만 아니라 사용 빈도도 확인할 수 있습니다. 스키마가 감사 일주일 동안 표시되지 않거나 거의 표시되지 않는 테이블이있는 경우 텍스트 검색 도구를 사용하여 코드에서이를 조사 할 수 있습니다.

데이터베이스에서 제거 할 후보 테이블과 관리자의 승인이 있으면 테이블을 삭제하거나 빈 테이블로 다시 만들거나 대부분의 null 값을 가진 테이블에 더미 레코드 하나를 넣지 마십시오 "DELETED" "지원 센터에보고 오류 DELE"와 같은 것을 넣을 수있는 이름과 설명 필드를 제외하고는 필드에 "0"또는 "공백"을 입력하십시오. 그런 식으로 응용 프로그램은 하드 오류로 실패하지 않으며, 이러한 사용되지 않는 테이블로 끝나면 사용자가 수행중인 작업을 파악할 수 있습니다.

+0

마찬가지로, 그것은 당신이보고 시작한 이후로 사용 된 것을 알려줄뿐입니다. 전체 응용 프로그램을 평가하고 개정 할 때 수행 할 작업을 결정하는 것이 좋습니다. –

1

DB (Visio, Toad 등)를 리버스 엔지니어링하여 구조를 문서화하고 디자이너에게 새로운 사이트를 물어 본 다음 리팩터링을 요청하십시오.

+1

감사합니다. 나는 "충분한 명성이 없기"때문에 당신을 투표 할 수는 없지만 그것이 제가 찾고있는 접근법입니다. 나는 초급 수준의 프로그래머이고 나는 여전히 사물의 과정에 익숙하다. – nlast

0

HTML 소스에 테이블 이름이 지정되어있는 경우 (이 필드가 유일한 위치 인 경우) 파일에서 검색을 수행하여 DB의 각 테이블 이름을 확인할 수 있습니다. 많은 테이블이있는 경우 grep과 같은 도구를 사용하고 각 테이블 이름에 대해 소스 코드베이스 (HTML 파일과 이름으로 테이블을 참조 할 수있는 다른 모든 파일)에 대해 grep을 실행하는 스크립트를 만드는 것을 고려하십시오.

그럼에도 불구하고 나는 Damir의 조언을 따르고 유효성 검사를 위해 삭제 후보 목록을 데이터 디자이너에게 가져다 줄 것입니다.

0

데이터 액세스 또는 UI 주변에서 테스트를 수행하지 않으므로 사용되지 않았는지 확인할 방법이 없습니다. 데이터 액세스가 일관성이 있다면 스크립팅이 최선의 방법입니다. 호출중인 테이블/뷰/저장 프로 시저를 검색하고이를 파일로 덤프하여 추가 분석을 수행하십시오. 그러면 적어도 실제로 어떤 장소에서 호출되는 모든 목록을 제공합니다. 그 페이지가 실제로 어디서든 사용된다면 그것은 또 다른 이야기입니다.

호출 된 데이터베이스 요소의 목록이 있으면 데이터베이스에있는 사용자 정의 요소의 목록과 비교하십시오. 그렇게하면 잠재적으로 삭제 될 수있는 것들을 줄 것입니다.

사이트가 재 설계되는 경우 실제로 새로운 데이터베이스 스키마가 더 나은 접근 방법 일 수 있습니다. 데드 테이블과 필드를 찾는 것보다 오래된 데이터를 가져 와서 새로 시작하는 것이 일반적으로 덜 힘듭니다.

1

나는 키워드의 HTML 소스를 통해 빗질하여 시작합니다 :

  • INSERT
  • UPDATE
  • 등/그렙를 사용하여 ...

삭제를 선택합니다. 이 중 HTML 엔티티는 없으며 뷰를 처리 할 수 ​​있으므로 테이블 이름을 안정적으로 사용할 수 없습니다 (시스템에 존재한다고 가정). 그런 다음 진술 자체를 쏟아 부어 사용중인 것을 판별해야합니다.

[잘하면] 함수 및/또는 저장 프로 시저가 시스템에서 사용 된 경우 대부분의 DB에는 종속성을 확인하기위한 참조 기능이 있습니다.

이것은 화면 단위로 디자인 문서를 작성하고, 테이블 & 화면의 속성을 table.column 레벨의 데이터베이스에서 가져온 좋은 시간입니다.

사용 된 테이블 목록을 컴파일하고 실제로 데이터베이스에있는 테이블과 비교하십시오.

관련 문제