43 페이지 쿼리를 유지할 수 있습니까? [닫은
-
03-07-2019 - |
문제
나는 항상 SQL 컴파일러가 파손될 것이라고 생각했지만 분명히 Nesing은 거의 무한 할 수 있습니다. 이 코드는 즉시 쓰레기를 버릴까요? 아니면 이와 같은 것이 기능 할 수 있다는 희망이 있습니까?
이 쿼리는 실제로 나에게 속하지 않으므로 게시 할 수 없습니다 ...하지만 그냥 척하자 이 하나:
[SELECT /*+ NOPARALLEL bypass_recursive_check */
SP_ALIAS_190,
((CASE SP_ALIAS_191
WHEN 1
THEN 'PROVIDER::ALL_PROV::'
WHEN 0]
해결책
쿼리가 도구 (또는 코드에 의해)에 의해 생성되는 경우, 쿼리 생성 코드가 실제로 잘 쓰여지고 유지 관리 가능하다는 의미에서 유지하기가 비교적 간단 할 수 있습니다.
다른 팁
분명히, 당신은 SharePoint dal에서 나오는 SQL을 본 적이 없습니다.
나는 최근에 이와 비슷한 문제를 겪었고 몇 가지를 고려하여 결정을 내 렸습니다.
- 재 작성 대 유지하는 데 얼마나 걸립니까?
- 이것이 얼마나 중요한가요? 풀기 어려울 수있는 많은 논리가있을 수 있으며 "작동"이 즉각적인 재 작성에서 값을 초과한다는 사실의 가치가있을 수 있습니다.
물론, 최근에 만들어진 무언가가 왜 다시 작성되어야하는지 설명하는 위험에 관한 정치적 결정 관리가있었습니다.
결국 (나를 위해) 찾기 + 교체는 내 친구였습니다.
그것을 사용하여 refactor 와 함께 성명. 많은 의견을 추가하십시오.
관리 할 수있는 조각으로 나누면 훨씬 더 좋은 기회가 있습니다.
그것이 둥지의 할당이 포함되어 있다면 나는 아니오라고 말할 것입니다.
어떤 코드와 마찬가지로 어떤 코드와 마찬가지로, 어떤 언어와 마찬가지로, 어떤 언어가 더 효율적이거나 이해하기 쉽게 만들 수 있기 때문에 언어를 다시 작성해야합니다.
내 경험을 바탕으로 Origonal Auther는 실제로는 전혀 몰랐기 때문에 잘못 쓰여진 SQL을 4 ~ 5 배 크기의 크기 4 ~ 5 배 줄일 수있었습니다.
If you think that's bad, you should see Industrial Logic's sample video on code smells: Technical Debt. Definitely not autogenerated.
Is it possible to maintain a 43 page function, say, in C#? The answer is obvious ;). I just cannot imagine this. If I were you I would break it into smaller parts.
Two things:
- Will only machines ever need to read this SQL?
- Are you stuck with the underlying schema?
If you have a 43 page query and you answered yes to the first two questions, welcome to SharePoint development