SQL 주입 공격을 막기 위해 매개 변수화 된 쿼리를 사용하는 것이 중요하다는 사실을 알고있는 사람이 많습니다.다른 db에 대한 매개 변수화 된 쿼리의 성능
쿼리 최적화 프로그램이 실행하기 전에 모든 매개 변수가있는 SQL 문을 다시 구문 분석 할 필요가 없기 때문에 매개 변수가있는 쿼리는 온라인 트랜잭션 처리를 수행 할 때 sqlite 및 oracle에서 훨씬 빠릅니다. 나는 당신이 매개 변수화 된 질의를 사용할 때 sqlite가 3 배 더 빨라지는 것을 보았습니다. 오라클은 어느정도의 매개 변수화 된 질의를 사용할 때, 동시성이 많은 극단이 인 경우가 더 빨라질 수 있습니다.
다른 db는 mysql, ms sql, db2 및 postgresql과 비슷합니까?
매개 변수가있는 쿼리와 리터럴 쿼리간에 성능에 동일한 차이가 있습니까?
오늘날 많은 DBMS가 SQL 문자열 동등성으로 식별 된 매개 변수화 된 쿼리를 지원하기 때문에 매개 변수화 된 쿼리를 준비하기 위해 추가 왕복이 필요하지 않습니다. –
(계속 된 설명) : SQL Server에서 sp_executesql을 사용하거나 Oracle에서 "execute immediate"와 같이 사용합니다. DB에서 쿼리 식별자를 검색하는 여러 언어로 사용할 수있는 "준비"메서드는 연결 컨텍스트 내에서만 사용할 수 있으며 프로그래밍 오류가 발생하기 쉽습니다 (예 : 모든 쿼리 전에 "준비"호출). SQL 문자열로 식별 된 쿼리는 전체 또는 여러 애플리케이션에서 다시 사용할 수 있습니다. –