1) 요약 테이블을 표시하는 응용 프로그램을 만들고 있습니다. 각 요약 열을 클릭하면 오름차순 또는 내림차순으로 정렬 할 수 있습니다. 예를 들어 5 개의 열이 있습니다.동적 SQL 쿼리 생성
2) 따라서 일반적인 인스턴스에서이 기능을 제공하기 위해 최소 5 개의 개별 SQL 쿼리를 생성 할 것입니다. 준비된 문으로 작성할 수 있습니다.
3) 그러나 아래 조건을 모두 만족하는 모든 조건을 고려할 수있는 동적 단일 SQL 코드를 만드는 것이 좋습니다. DB 성능에 어떤 영향을 미칩니 까? 이제는 준비된 성명서로 쓸 수 없으므로 내 성취가 느려 집니까?
DB 성능에 관한 감사
CREATE DEFINER=`root`@`localhost` PROCEDURE `lSummary`(in fixedConditionList VARCHAR(1000),in OptionalConditionListForBackEnd VARCHAR(1000),in orderByColumnList VARCHAR(1000),in optionalJoinStatement VARCHAR(1000),in startLimit int(10),in OptionalFilterListWithAnd VARCHAR(1000),in OptionalFilterListWithOr VARCHAR(1000),in selectColumnList VARCHAR(10000),in EndLimit int(10)) BEGIN DECLARE SQLStatement varchar(5000); SET @SQLStatement = CONCAT("select l.lCaseId,concat('Staf') as canWrite,concat('Staf') as canShare,DATE_FORMAT(c.nextCourtDate,'%d-%m-%Y') as nextCourtDate,TIME_FORMAT(c.nextTime,'%h:%i %p') as nextTime,totalNumberOfSSteps,totalNumberOfSteps, ",selectColumnList," from litigation l left join(select relatedToId,relatedToPrefix,count(*) as totalNumberOfSteps from flowsubmilestoneinuse group by relatedToId) as wt on l.lCaseId=wt.relatedToId and l.lCasePrefix=wt.relatedToPrefix left join (select relatedToId,relatedToPrefix,count(*) as totalNumberOfSSteps from flowsubmilestoneinuse where milestoneReachedById Is not null group by relatedToId ) as wc on l.lCaseId=wc.relatedToId and l.lCasePrefix=wc.relatedToPrefix left join detail c on c.lCaseId= l.lCaseId ",optionalJoinStatement," where (",fixedConditionList,") AND (",OptionalConditionListForBackEnd,") AND (",OptionalFilterListWithAnd,") AND (",OptionalFilterListWithOr,") order by ",orderByColumnList," Limit ",startLimit,EndLimit); EXECUTE STMT; END
확실히 준비된 문은 런타임에 동적 매개 변수를 사용할 수 있습니다. 그것은 문제가되지 않습니다. – arkascha
안녕하세요. 가능하면 튜토리얼에 대한 참고서를 보내주세요. 감사합니다 – Lajpat