Page History
Info |
---|
JPA는 SQL문을 통해 어플리케이션을 작성했을때보다, 수많은 귀찮은 일을 하지 않아도된다는것을 실습을 통해 파악을 하였습니다. 하지만 실제 그것이 어떠한 SQL문을 수행하는지 또한 그 SQL문이 성능적으로 문제가 없는지 데이터베이스를 병행해서 공부해야하는 과제가 있습니다. 실행계획을 예상하고 측정하는것은 아주 광범위한 주제입니다. 데이터베이스를 공부했을때 성능에 관련된 실행계획은 SQL과 더불어 JPA에서도 이해해야하는 항목으로 생각됩니다. |
...
이것은 데이터중심에서 메시지중심으로의 설계를 가능하게합니다.
...
MS를 사용한 개발 진영 SQL은 SP를통한 통제 방식이 개발이 권장이 아니라 정책적 변경불가한 요소인곳도 많이 봐왔으며
MS권장방식이라고 믿고 계신 DBA분들도 많이 봐왔으며, 아주 오랜전 결정된 정책( 그때 정책을 만든사람은 아무도 없음)
에 대한 이해및 히스토리가 대부분 없는 경우도 많으며 이것을 다시 셋팅하는것은 거의 쿠테타에 가까운것이였습니다.
사실 MS는 JAVA오픈진영보다 훨씬더 빠르게 ORM을 통한 개발 요소를 내부에서 표준화하였고 통합하였습니다. -Entity FrameWork
...
이것을 힘들게 주도하여 바꾸는것을 권장하지 않습니다.
언젠가 쓰일수 있으며, 왜 ORM은 우리회사에 적용이 어려운가란 주제는
RDB를 공부하는데 아주 좋은 주제가 될듯 합니다.
다음은 ORM 사용시 오해받는 몇가지 주제입니다.
- ORM의 쿼리는 통제가 안되고 느릴것이다. ==> TypeSafet한 방식의 쿼리빌드를 선택하고,표준쿼리를통해 성능문제를 해결하려고 합니다.
- ORM에서는 쿼리 최적화가 불가 ==> 네이티브 쿼리의 불편한점에대해 경고를 해줄뿐 JPA에서 날쿼리도 가능합니다.
- ORM은 쿼리 개발을 모르는 초짜가 사용하는 기술이다. ==> QueryDSL은 SQL을 이해못하면 람다식으로 SQL식을 풀어낼수 없으며, 쿼리작성보다 엔티티를 먼저 맞추는데 시간을 들입니다. 그리고 쿼리식과 람다식은 닯아있습니다. ORM에서 오히려 순차적 중복 쿼리 호출방식을 지양합니다.
- ORM은 ERD를 그려낼지 모르는 개발자가 사용하는 기술이다 - ==> 기존개발방식이 ERD설계된 관계를모르고, 조인남발 쿼리로 잘못된 집합체를통한 뷰어개발이 가능하지만, ORM에서 ERD관계를 맞추지못하면 빌드 조차 안됩니다. 그리고 올바른 조인관계를 반영해야하며 조인문을 직접사용하지 않습니다.
DB용어를 사용하여 조급더 고급지게 접근해보겠습니다.
- DDL(Data Definitison Language)의 테이블 객체의 생성(Create),변경(Alert),삭제(Drop)등을 수행
- DML(Data Manipulation Language) : 스키마객체의 데이터를 Insert/Update/Select등을 할수 있는 명령어(표준화되어있어서 거의 공통)
- DCL(Data Control Language) : Commit,RollBack,SavePoint등을 할수 있는 명령어(DB종속적인 경우가 많음)
JPA-ORM은 기본적으로 DDL/DML/DCL을 모두 할수 있는 구조입니다.
이것은 ORM이해가 아닌 기존 RDB가가진 언어입니다. 접근 정책정의에 있어서 중요요소 3가지를
빠트리고 이야기가 진행되는경우가 많지만... 정책결정은 위 3가지를 포함해서 이야기되어야하는 항목으로 생각됩니다.
SP를 이용한 장점:
...
...
실행계획
...
ORM을 이용한 장점:
- 고성능 분산처리 어플리케이션 설계를 위해서는 DML 특히 트랜잭션에 관련된 DCL이 가능해야함 ( Entity의 영속성및 Proxy개념 )
- SP내부에 작성되는 쿼리는 일괄적인 품질관리가 안되며, SP자체가 형상관리가 안되고 결국 SP는 이야기합니다. 나는 안쓰인다 고로 존재한다.
- 고성능 분산처리를 위해 트랜잭션에 어플리케이션이 안정적이고 더 효율적이게 관여할수 있는 개발방법이 많이 등장하였습니다.
- 인덱스를 걸고 실행계획을 안정적으로 유지하는것은 DBMS마다 약간의 차이가있고 그리고 그것은 비표준 SQL문 작성을 강요하며 일괄적으로 유지가 어렵습니다.
SP를 통한 DB개발에서 이야기하는 장점이 오늘날에는 단점이 된 케이스가 일부있고
서로 상반된 이야기를 하기때문에 풀어나가기가 어려운 주제임은 분명합니다.
...
조사하기
Trace된 SQL문을 그대로 복사하여, 실행계획을 조사합니다. 매번 이러한 과정을 거칠필요는 없을듯보이며
...
성능 측면에서도 실무에 적용이 될것으로 기대해봅니다.
이 부분은 개념과함께 구체적인 사용사례가 필요한 부분이며, 샘플을 좀더 준비할예정입니다.
Expand | ||
---|---|---|
| ||
|
...
|