본문 바로가기
반응형

DB18

SQL 문법과 실행 순서 : SQL 쿼리 동작 순서와 최적화 SQL은 데이터베이스에서 데이터를 조회, 조작하기 위한 언어입니다. SQL 쿼리는 원하는 데이터를 가져오기 위해 다양한 단계에 의해 실행됩니다. 이번 글에서는 SQL의 기본 문법과 쿼리의 실행 순서에 대해 알아보겠습니다. [1]. SQL의 기본 문법 1. SELCT ~ FROM ORDER BY SELECT [distinct] * or 컬럼명 FROM 스키마.테이블 as alia명 order by 컬럼명 [asc / desc] 데이터를 조회하기 위해선 기본적으로 SELECT ~ FROM 을 통해 질의합니다. 먼저 FROM 절뒤는 어떤 데이터를 조회할 것인지를 작성하게 되고, SELECT 절은 FROM절의 데이터에서 어떤 column을 조회할것인지 혹은 전체를 조회할것인지를 결정하게 됩니다. order by.. 2023. 8. 3.
[MSSQL] 누적값 구하기! (셀프조인!Self JOIN) 활용! 안녕하세요! 오늘은 누적값을 구하는 쿼리에 대해 알아보려합니다. 누적값은 현업에서도 많이 사용되고, 보통 날짜를 기준으로 해당하는 누적값을 구하거나, 그냥 일반적으로 상품 판매 누적값을 구하기도 합니다. 그렇다면 누적값을 구하는 방법과 그 원리에 대해 설명해보겠습니다. 누적값은 현재 1행에서 시작해서 2행으로 넘어갈 때, 전 행의 값을 함께 가져와야 구할 수 있습니다. 그럼 이 논리에 따라서 시작점을 잡아보겠습니다. (1) 1행의 값이 존재(2) 2행으로 넘어감(3) 2행에서는 1행의 값과 2행의 값을 동시에 가지고 있어야함(4) 3행으로 넘어감(5) 3행에서는 1행, 2행의 값과 3행의 값을 동시에 가지고 있어야함 이러한 로직대로 누적값을 구할 수 있습니다. 그렇다면 자기 자신의 값과 그 전행값을 가지.. 2020. 8. 11.
데이터 표준화 필요성 및 개념 서론안녕하세요 투자하는 개발자 투개자입니다. 오늘은 데이터 표준화에 대해 이야기 해보려합니다.전글에서 우리는 데이터와 데이터베이스에 대해 알아봤습니다. 개념적으로 데이터와 데이터베이스에 대해 이해했지만 실제로 데이터를 활용하다 보면 이 데이터가 어떻게 활용되고, 도대체 무엇을 위해 사용되는지 모를때가 많습니다. 특히 현업에서 데이터를 통해 새로운 인사이트나 의사결정을 해야하는 위치라면 더욱이 공감하실 것같습니다. 하여 데이터를 사용하는 모든 공유자들이 서로 해당 데이터가 무엇이고, 이햐하며 데이터의 품질을 향상하기 위해 약속 및 통합하는 과정을 데이터 표준화작업이라고 생각하시면 됩니다. 서론에선 간단하게 설명드렸지만 본론에서 자세하게 데이터 표준화의 필요성과 개념에 대해 설명드리겠습니다. 데이터와 데이터.. 2020. 7. 31.
데이터베이스의 개념 및 용어 정리! 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 데이터베이스의 개념과 용어에 대해 알아보겠습니다. 개발자라면 반드시 알고있어야하는 데이터베이스의 개념과 이를 관리하는 DBMS(DataBase Management System)는 무엇인지에 대해 설명드리겠습니다.데이터베이스에 설명드리기 전에 우선 데이터가 무엇인지 알아야합니다. 데이터란 단순 관찰이나 측정 등의 수단을 통해 수집된 사실 또는 값이라고 표현할 수 있습니다. 데이터는 현실세계의 모든 것이라고 말 할 수 있습니다. 영수증에 써있는 상표명, 카카오톡 메세지, 자동차 마크 등 모든것이 데이터가 될 수 있습니다. 그리고 이 데이터 중에서 체계화된 데이터가 지니는 의미를 정보라고 합니다. 예를들어 종이에 나, 한국, 사는곳이라고 적혀있는 글씨가 있습니다.. 2020. 7. 30.
[MSSQL]SP_SPACEUSED로 row수 빠르게 조회하자! - MSSQL행수세는방법 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 SP_SPACEUSED를 통해 rows를 빠르게 조회하는 방법에 대해 이야기하려 합니다. 테이블의 row수를 확인해야할 때 어떻게 하면 좋을까요? SELECT COUNT(*) FROM [스키마].[테이블]cs 위에 나와있는 쿼리 처럼 COUNT를 통해 ROW수를 알아내곤 합니다. 하지만 COUNT로 알아내는 쿼리는 테이블의 ROW수가 적을 땐 빠르지만 만약 테이블의 크기 & ROW수가 크다면 어떤일이 벌어질까요?SELECT COUNT를 하는 순간 극단적으로 말해서 하루종일 기다려야할지도 모릅니다. 그렇다면 대용량 테이블의 ROW수를 빠르게 가져올 수 있는 방법은 무엇일까요?바로 SP_SPACEUSED를 사용하면 아무리 대용량 테이블이라도 ROW수를 빠르게 .. 2020. 7. 29.
[MSSQL] WITH(NOLOCK)이란... 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 SELECT문 뒤에 작성하는 WITH(NOLOCK)에 대해 알아보겠습니다.WITH(NOLOCK)이란 영어그대로 풀어보면 잠금을 하지 않은 체로 함께~ 라는 의미입니다. SELECT * FROM [스키마].[테이블이름] WITH(NOLOCK)cs MSSQL은 기본적으로 SELECT문을 사용할 때 공유잠금이 걸립니다.공유잠금이란 한 테이블에서 INSERT, UPDATE, DELETE문이 수행되고 있다면 SELECT문은 앞의 작업들이 끝날 때까지 LOCK이 걸립니다. WITH(NOLOCK)을 함께 작성해 주시면 앞의 작업에 상관없이 SELECT문이 수행되게 됩니다. 때문에 WITH(NOLOCK)이 없는 상태로 SELECT문을 실행한다면 테이블이 BLOCK이 걸려.. 2020. 7. 28.
[MSSQL] SERACH PROCEDURE! 특정 단어가 들어간 프로시져 찾기 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 특정 단어가 포함된 프로시져를 찾는 쿼리에 대해 알아보겠습니다.데이터베이스를 관리하다보면 프로시져, 트리거, 인덱스 등 쿼리, DB성능을 향상시키기 위해 작성하곤 합니다.이때 수많은 프로시져를 생성하다 보면 원하는 프로시져를 깜박하거나, 급히 수정해야할 때, 해당 프로시져를 찾는 방법이있다면빠르게 찾아 update할 수 있습니다. 1. SYSCOMMENTS 테이블 활용프로시져를 조회할 때, 시스템 테이블을 활용할 텐데 저희가 활용할 뷰 테이블은 SYSCOMMENTS 테이블입니다. SELECT * FROM SYS.syscomments WITH(NOLOCK)cs 참고로 WITH(NOLOCK)을 함께 쳐주는 이유는 MSSQL은 기본적으로 공유잠금이 걸리는데 이걸.. 2020. 7. 28.
[MSSQL] MERGE문 작성 방법 및 응용 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 MERGE문에 대해 이야기 해보려합니다. 쿼리를 작성하다보면 A테이블에 UPDATE, INSERT, DELETE 등의 작업을 해야할 경우가 빈번합니다.하지만 각각의 DML을 하나하나 작성하면 너무너무 비효율 적입니다.MERGE문은 이런 비효율적인 쿼리를 단일 문으로 대체할 수 있는 방법입니다.MERGE문 내에서 INSERT, UPDATE, DELETE가 수행되면서 데이터 처리횟수를 줄이고 쿼리 성능을 높일 수 있는 방법입니다. 우선 MERGE문을 사용하기 전의 비효율 적인 쿼리를 보여드리겠습니다. INSERT INTO 테이블A VALUES(1,'이름','나이','학과') UPDATE 테이블ASET 이름 = '이름2'WHERE NO = 2 DELETE 테이블.. 2020. 7. 27.
MSSQL 이중화구성 Replication, Log Shipping, Mirroring, Cluster, Always On 방법! 안녕하세요. 투자하는 개발자 투개자입니다. 오늘은 MS SQL의 이중화 구성의 종류와 특징들을 살펴보겠습니다. MS SQL에서 지원하는 이중화 구성의 종류는 총 5가지로 Replication, Log Shipping, Mirroring, Cluster, Always On 방식이 있습니다.저는 이중 Replication과 Log Shipping을 구현해봤습니다. 해당 방식들의 특성을 알고 있다가 참여하시는 프로젝트의 성격 혹은 기업에 맞춰 이중화를 구성하시면 됩니다. 1. ReplicationReplication 방식은 주 서버와 보조서버간의 데이터 배포방식입니다. 주서버(게시서버)가 보조서버(배포서버)에게 데이터를 전달 후 배포서버가 다른 구독서버들에게 데이터를 전달하여 각 구독서버들이 최종 사용자에게 .. 2020. 7. 21.
반응형