Dbms sql실행질문

Dbms sql실행질문

작성일 2020.12.01댓글 1건
    게시물 수정 , 삭제는 로그인 필요

이테이블로 1번
밑에 mysql 에적혀있는 sql문그대로
실행결과를 캡쳐하거나 사진으로어떻게나오는지 보여주시고 어떤dbms로 실행한지도알려주시면감사하겠습니다ㅜㅠ




profile_image 익명 작성일 -

댓글에 주고받은 내용도 캡쳐해서 올립니다.

finecomp

이 정도는 아무 dbms에서나 수행해도 결과가 같을텐데, SQL까지 다 만들고 직접 안해 본 이유는 뭔가요???

2020.12.01. 08:04:24

질문 작성자

결과가 다르대요 dbms마다

2020.12.01. 12:13:24

==================================================================================

결과가 다르대요 dbms마다...??? 이것만 얼핏 들으면 얘기한 사람이 거짓말쟁이 라고 할 뻔 했습니다...^^;

혹시 데이터 값들은 전부 동일한게 나오긴 하는데...;

group by 한 결과의 최종순서가 각각 다르게 나오는 이유가 뭔지가 궁금하신 거 아닌가요...?

(심지어 동일 dbms에서도 순서가 다르게 나올 수 있음)

이 이유라면 간단합니다. group by를 구현하는 dbms 내부의 방법 차이입니다.

dbms 내부에서 group by를 수행할 때, 크게 sort group by 와 hash group by 방식으로 나뉩니다.

1) sort group by 방식은 group by 기준의 항목들로 sort를 해서 중복 제거를 하고 집계를 하는 방식입니다.

당연히 group by 기준으로 sort된 결과로 나오겠죠?...그러나 추가 sort 과정이 필요 해 쿼리 성능이 나쁩니다.

2) hash group by 방식은 hash 함수를 이용하여 중복제거를 하고 집계하는 방식입니다.

이 때는 hash 함수 결과 값의 순서로 조회되므로, 원래의 데이터 순서와는 다르게 되나, 쿼리 성능은 훨씬 좋습니다.

이 부분이 dbms마다 순서가 다 다를수 있습니다. 각 dbms마다 고유의 hash함수를 가지며 다를 수 있으니까요.

실제 오라클에서도 버전 및 쿼리하는 복잡도나 case 등 에 따라, 두 가지가 혼용되어 실행계획에 나타납니다.

그러므로 어떤 경우에도 반드시 순서를 보장해야 한다면, 명시적으로 group by 후 order by 까지 꼭 써 주세요.

건승하세요~

Dbms sql실행질문

... 에적혀있는 sql문그대로 실행결과를 캡쳐하거나 사진으로어떻게나오는지 보여주시고 어떤dbms로... 08:04:24 질문 작성자 결과가 다르대요 dbms마다 2020.12.01. 12:13...

Sql 실행 질문

텡프 테이블 생성퀴리 Create tmp select 쿼리 실행햐면 처음에는 30분걸리고 이후... 단, 오라클 dbms의 사례이니, 다른 dbms라면 직접 찾아보거나 문의하시기...

TOAD에서 PL/SQL 실행 관련 질문

... sql navigator에서 pl/sql 실행방법은요? (exec atm_monitor 이러면... 1.DBMS_OUTPUT.PUT_LINE('total count'|| card_list%ROWCOUNT); 2.O_card_no 커서내용을...

SQL _ PL/SQP질문입니다

... PL/SQL문에 Declare문으로 dbms_output.put_line으로는 출력해보려했는데 막힘이 있어서 질문남깁니다Declare문안에는 PRINT문을 사용할 수 없고 Exec실행을 할 수...

간단한 SQL 질문

... 단순하게 WHERE절 써서 하면 될 줄 알았는데 실행시... 아래 답변 달고 나니 질문이 바뀌어 있네요...^^; DATEDIFF("d", 날짜, 날짜) 로 미루어 dbms는 MS SQL...

SQL 서버 접속 관련 질문드립니다.

... 않아 질문드립니다 해당 서버에 TELNET을 통해서 접속하시고 DB 정보로 해당 DB에 접속하셔서 SQL실행해... https://blissfuljoon.tistory.com/412 DB 접속은 DBMS에 따라...

sql 질문이요

... 실행계획을 보는 방법은 각 dbms와 사용 Tool에 따라 모두 다르니 검색해 보세요. group by는 상황에 따라 sort group by 와 hash group by로 실행계획이 나올 수...

pl/sql 질문

... DBMS_OUTPUT.PUT_LINE('A'); CLOSE C1; END; / 이렇게 하니 프로시져는... 만들어지는데 실행이 안되네요 SQL> execute test('BR01') BEGIN test...