본문 바로가기
반응형

개발언어/SQL46

distict 와 group by의 차이는 무엇일까? 갈무리한것! distinct는 sorting하면서 중복되는 row를 제거하는거고 group by는 조건을 기준으로 값을 합 하지요. 처리하는 방법에 약간의 차이가 있는거 같습니다. Teradata의 경우는 group by는 4 step : 1.local aggregation 2.redistribution 3.sort 4.global aggregation 이고 distinct는 2 step : 1.redistribution 2.sort (eliminationg duplicate value) 입니다. 일반DB와 달리 병렬처리하는 과정이 있으므로 local aggregation, redistribution 이 빠진다고 해도 group by는 한 과정이 더있습니다. 그러므로 unique한 row를 구한다고 할때.. 2008. 1. 25.
COMMIT TRANSACTION COMMIT TRANSACTION 성공적인 암시적 트랜잭션이나 사용자 정의 트랜잭션의 끝을 표시합니다. @@TRANCOUNT가 1이면 COMMIT TRANSACTION은 트랜잭션이 시작된 이후의 모든 데이터 수정 사항을 데이터베이스에 영구적으로 반영하고 연결에서 보유한 자원을 해제한 후 @@TRANCOUNT를 0으로 감소시킵니다. @@TRANCOUNT가 1보다 크면 COMMIT TRANSACTION은 @@TRANCOUNT를 1씩 감소시킵니다. 구문 COMMIT [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable ] ] 인수 transaction_name Microsoft® SQL Server™에서는 무시됩니다. transaction_name은 이전의.. 2008. 1. 8.
ROLLBACK TRANSACTION ROLLBACK TRANSACTION 명시적 또는 암시적인 트랜잭션을 트랜잭션의 처음이나 트랜잭션 내의 저장점으로 롤백합니다. 구문 ROLLBACK [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable ] | savepoint_name | @savepoint_variable ] ] 인수 transaction_name BEGIN TRANSACTION에서 트랜잭션에 할당된 이름입니다. transaction_name은 식별자에 대한 규칙을 따라야 하지만 트랜잭션 이름의 처음 32자만 사용됩니다. 트랜잭션을 중첩할 경우 transaction_name은 가장 바깥쪽 BEGIN TRANSACTION 문이어야 합니다. @tran_name_variable 유효한 트.. 2008. 1. 8.
BEGIN TRANSACTION BEGIN TRANSACTION 명시적 로컬 트랜잭션의 시작 위치를 표시합니다. BEGIN TRANSACTION은 @@TRANCOUNT를 1씩 증가시킵니다. 구문 BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ 'description' ] ] ] 인수 transaction_name 트랜잭션에 할당된 이름입니다. transaction_name은 식별자에 대한 규칙을 따라야 하지만 32자 이상인 식별자는 허용되지 않습니다. 중첩된 BEGIN...COMMIT 또는 BEGIN...ROLLBACK 문의 가장 바깥쪽 쌍에서만 트랜잭션 이름을 사용합니다. @tran_name_variable 유효한 트랜잭션 이름이 포함된 사용자.. 2008. 1. 8.
반응형