2009-03-25 7 views
0

SQL Server 2000 (T-SQL)으로 변환하는 몇 가지 MS Access 쿼리 (보기 및 저장 프로 시저에서)가 있습니다. 하위 쿼리 또는 원래 개발자의 제한 사항에 대한 Access의 제한으로 인해 다른보기의 하위 쿼리로만 작동하는 많은보기가 만들어졌습니다.SQL 쿼리를 어떻게 리팩터링합니까?

'액세스 애플리케이션이 수행하는 작업'과 보고서/CSV 추출물에 대한 노트 페이지 절반을 제외하고는 명확한 비즈니스 요구 사항이 없지만 액세스 애플리케이션은 의심스러운 작업조차하지 않습니다. 필요합니다.

나는 아래쪽 접근 방식을 취해야하고 Access DB를 T-SQL에 '복사'해야합니다. 일반적으로 요구 사항을 더 잘 이해하고 아래로 접근하여 새 쿼리를 만듭니다. 잘 정의 된 요구 사항.

내가 수행 할 수있는 방법이 있습니까? 나는 그것을 모두 퍼 뜨리고 며칠을 보내거나 액세스 뷰를 그대로 복사하고 쿼리 최적화를위한 진화적인 접근법을 채택합니까?

+0

이러한 액세스보기에서 몇 가지 버그를 발견하게됩니다. –

답변

1

쿼리가 어떤 액세스를 수행하는지 확인한 다음이 정보를 사용하여 올바르게 전송했는지 확인하십시오. 한 번만 해보면 리팩토링에 대해 생각할 수 있습니다. 느린 쿼리로 시작한 다음 거기에서부터 시작합니다. 필요한 인덱스를 찾아서 점진적으로 다시 작성하십시오. 이렇게하면 잠재적으로 조금 느릴지라도 모든 것을 성공적으로 옮겼다는 것을 입증하자마자 바로 전달할 수 있습니다. 문제 X가 발생했기 때문에 전혀 제공 할 수없는 것보다 훨씬 낫습니다.

0

뷰를 즉시 SQL Server에 복사 한 다음 정교한 도구를 사용하여 문제를 해결하는 것이 좋습니다.

예를 들어, SQL Server는 특정보기에 의존하는보기, 저장 프로 시저 등을 알려줄 수 있으므로보기가 단일보기인지 또는 둘 이상의보기에서 실제로 사용되는지 여부를 볼 수 있습니다 . 어떤 관점이 더 중요한지 결정하는 데 도움이됩니다.

1

아마도 Access 데이터베이스에서 시작하여 쿼리를 현장에서 실행하고 결과 집합을 확인하십시오. 종종 쿼리가 수행하는 작업을 이해 한 다음이를 수행하기 위해 자신의 디자인으로 다시 작업 할 수 있습니다. (철저히 말하자면 어쨌든 의도를 완전히 이해할 필요가 있습니다.) 그리고 이것은 "지금 구현되고있는 것"과 같은 최상의 요구 사항을 말하는 것 같습니다.

그 외에도, 내가 생각할 수있는 최선의 방법이 있습니다. 일단 SQL Server에 있으면 테스트 및 그로킹을 시작하십시오.

1

이와 같은 문제를 처리 할 때 점진적 변경을하는 동안 그대로 유지하는 것이 도움이됩니다. 이는 리스크 관리 관점에서 볼 때 더 좋습니다.

필자는 데이터베이스 성능을 확인하고 성능 문제를 최적화하는 데 집중하려고합니다. 그런 다음 기능을 추가하고 버그를 수정하면서 유지 관리하기 어려운 코드를 정리하십시오. 앞에서 말했듯이 하위 쿼리는 실제로보기와 매우 유사합니다. 따라서 파손되지 않은 경우 변경하지 않아도됩니다.

1

이것은 타임 라인에 따라 다릅니다. 가능한 한 빨리 프로젝트를 실행해야한다면 (모든 프로젝트에서 이것이 사실임을 알고 있습니다.하지만 정말로 그렇다면) 그렇습니다. 그렇다면 기능과 인프라를 Access에서 복제 한 다음 나중에 또는 다시 리팩토링하십시오. 너가.당신은 약간의 시간이있는 경우

당신은 그것에 헌신 당신에게 두 가지를 줄 것이다 지금 리팩토링 할 수

  1. 당신은 코드 행복 할 것이고, 그 (것) 때문에, 더 나은 수행합니다 복사 - 붙여 넣기와 동등한 코드 변환보다 실제 분석이 수행되었습니다.
  2. 실제 비즈니스 규칙이 무엇인지에 대해 더 잘 이해하게 될 것입니다. 스펙에없는 것들을 거의 확실히 발견 할 수 있기 때문입니다 특히 당신이 그들을 묘사하는 방법을 고려할 때)
관련 문제