"조기 최적화는 컴퓨터 프로그래밍에서 모든 악의 근원 (대부분은 어쨌든)"- Donald Knuth
데이터베이스는 바로 그 것입니다. 응용 프로그램의 데이터 계층 그 임무는 응용 프로그램에 요청 된 데이터를 제공하고 제공된 데이터를 저장하는 것입니다. 응용 프로그램은 실제로 데이터와 작동하는 코드를 넣을 수있는 곳입니다. 표시, 확인 등
제목 줄에 감정이 점에 감탄하고, 정확하지만 (필터링의 핵심적 껄끄 러운, 투사 등 그룹화 한다 ,에있을 수 있습니다 "잘"의 정의를 케이스의 압도적 인 다수하면 DB에 남아있을) 주문. SQL Server가 높은 수준의 성능으로 실행할 수있는 작업은 많지만 시연 할 수있는 작업SQL Server가 격리되고 반복 가능한 방식으로 올바르게 작동한다는 것은 매우 적습니다. SQL Management Studio는 훌륭한 데이터베이스 IDE입니다 (특히 TOAD와 같이 다른 옵션을 사용했을 때).하지만 그중에는 제한이 있습니다. 먼저 사용하는 모든 작업 (또는 실행중인 모든 절차 코드) 아래의 DB)는 정의에 따라 "부작용"(프로세스 메모리 공간의 도메인 외부에있는 상태 변경)입니다. 또한 최신 IDE 및 도구를 사용하여 SQL Server의 절차 코드는 지금 막 관리 범위 코드 및 경로 분석을 사용하여 관리 코드가 측정 할 수있는 방식을 측정 할 수 있습니다. , Y 및 Z 및 테스트 X는 조건을 true로 만들고 절반을 실행하도록 설계되었으며 Y 및 Z는 "else"를 실행합니다. . 즉, 특정 시작 상태로 데이터베이스를 설정하고, 조치를 통해 데이터베이스 절차 코드를 실행하고, 예상되는 결과를 주장 할 수있는 테스트가 있다고 가정합니다.
이 모든 것은 대부분의 데이터 액세스 계층에서 제공하는 솔루션보다 훨씬 어렵고 복잡합니다. 데이터 계층 (그리고 그 문제에 대해 DAL)은 올바른 입력이 주어지면 작업을 수행하는 방법을 알고 코드가 올바른 입력을 제공하는지 테스트합니다. SP 및 트리거와 같은 절차 적 코드를 DB 외부로 유지하고 대신 애플리케이션 코드에서 이러한 유형의 작업을 수행함으로써 애플리케이션 코드가 훨씬 더 쉽게 실행됩니다.