나는 한 번 테이블을 가지고 있었고 그것은 반짝이고 아름다웠다. 조직의 모든 금융 거래를 개최했습니다. 그런 다음 데이터를로드하기 시작했습니다.
이번 달에는 원하는 횟수만큼 값을 진술하고 다시 말할 수 있습니다. 한 달의 마지막 10 일 동안, 그들은 숫자를 다시 말하고-> ETL 처리를 실행합니다-> 보고서를 하루에 여러 번 검토합니다. 월이 완료되면 장부가 봉인되고 값을 수정할 수 없습니다.
금융 서비스 회사가 얼마나 많은 재무 데이터를 생성하는지는 놀랍습니다 ... 테스트 데이터 세트로 알지 못하는 것은 데이터의 양이 월말 절차를 유지할 수 없다는 것이 었습니다. 새 평가판 실행으로 교체하기 전에 "현재 월의 데이터"를 삭제하는 데 점점 오랜 시간이 걸렸습니다.
우리는 MonthlyAllocation 테이블에 의존하는 "무엇을 아는가"의 범주화되지 않은 목록을 깨뜨리지 않고 처리 속도를 높이기 위해 무언가를해야했습니다. 나는 마술사를 연기하고 식탁보를 그 밑에서 채찍질하기로 결정했습니다. 나는 구식으로 가서 Partitioned View를 사용했습니다 . 데이터에 이미 IsComplete 플래그가 있으므로 두 가지 테이블을 만들었습니다. 각 테이블에는 반대 제약 조건이 있습니다 : MonthlyAllocationComplete, MonthlyAllocationInComplete
그런 다음 원래 테이블과 동일한 이름을 가진 분할 된 뷰를 만들었습니다 : MonthlyAllocation. 데이터베이스의 물리적 변경에 대한 현명한 프로세스는 없었습니다. 보고 된 바가 없으며 직접 액세스 할 수있는 분석가 중 어느 누구도 그 "표"관련 문제를보고하지 않았습니다.
멋진 이야기는 끝났지 만 어디로 가는가?
그들이 tbl_MonthlyAllocation이라는 명명 규칙을 가지고 있다면 어떨까요? 이제 뭐? 조직의 모든 ETL, 모든 보고서, 임시 스프레드 시트 및 vw_MonthlyAllocation을 사용하도록 업데이트하는 데 많은 시간을 소비합니까? 물론 이러한 모든 변경 사항은 변경 보드를 거치며 항상 빠르고 쉬운 프로세스입니다.
당신은 상사가 물을 수도 있습니다. 모든 일에 대한 회사의 보상은 무엇입니까?
다른 옵션은이 뷰를 tbl_이라는 이름으로 남겨두고 코드를 테스트, 업데이트 및 배포하는 데 많은 시간을 소비하지 않습니다. 어떤 신입 사원들과 짧은 관심 범위를 가진 사람들에게 당신이 왜 객체의 이름과 일치하지 않는지 데이터베이스와 함께 일해야하는 재미있는 일화가되는 것
또는 중복 메타 데이터로 객체를 이중 인코딩하지 않습니다. 데이터베이스는 테이블, 뷰, 테이블 값 함수 등을 기꺼이 알려줍니다.
명명 규칙은 훌륭합니다. 자신을 모퉁이에 페인트하지 마십시오.
Class
합니까?