ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 처리 방식에 따른 성능 편차
    Database & SQL 2019. 6. 22. 11:42

    데이터 처리 방식에 따른 성능 편차 테스트

     

    ■ Statement 객체

    createstatement  static parsing 으로 sql문을 parsing 할 때 입력된 해당 값을 sql문에 binding하여 같이 parsing 하여 실행한다

    static parsing sql문과 입력된 값을 함께 파싱 하므로 한번 parsing  sql문을 다른 데이터를 입력하여 사용 할 수 없어 해당 서비스에 사용자 수가 많은 경우 메모리 full이 발생할 수 있다

    createStatement사용시 Statement를 사용하여 sql문에 필요한 데이터를 입력 받고 실행시 발생한 데이터를 ResultSet 에 저장한다

     

    ■ Prepared Statement 객체

    바인딩 변수를 사용해서 하드파싱을 줄일 수 있다.

    prepareStatement dynamic parsing으로 sql문을 parsing한 후 입력된 해당 값을 parsing sql문에 binding하여 실행한다.

    dynamic parsing sql문을 먼저 parsing하여 입력되는 값이 여러개 일 경우 sql문을 여러번 parsing하지 않고 parsing sql문에 원하는 값을 binding하여 사용하므로 자원의 낭비가 적다.

    prepareStatement사용 시 PreparedStatement를 사용하여 sql문에 필요한 데이터를 입력 받고 실행 시 발생한 데이터를 ResultSet에 저장한다.

    장점 : 값의 binding없이 sql문 만을 parsing하므로 parsing sql문의 재사용이 용의하여 자원이 낭비되지 않으며 인젝션으로 인한 피해를 줄일 수 있다.

    단점 : 무겁다.

     

    ■ Callable Statement 객체

    callableStatement SQL의 스토어드 프로시저를 실행시키기 위해 사용되는 인터페이스

    스토어드프로시저란 query문을 하나의 파일형태로 만들거나 데이터베이스에 저장해 놓고 함수처럼 호출해서 사용 하는 것이다 이것을 이용하면 연속되는 query문에 대해서 매우 빠른 성능을 보인다

    장점 : 자바코드에 쿼리문이 들어가지 않아 보다 간결해진다

    단점 : 저장프로시져에서 선언한 순서대로 파라미터를 넘겨야 한다



    출처: https://bboong100.tistory.com/84 [개발새발]

    'Database & SQL' 카테고리의 다른 글

    Index Scan vs Full Table Scan  (0) 2019.06.29
    Transaction Type  (0) 2019.06.22
    SQL 처리과정과 Parsisng , Shared SQL Area  (0) 2019.06.22
    SQL의 주요특징  (0) 2019.06.22
    Oracle DBMS  (0) 2019.06.22
Designed by Tistory.