본문 바로가기
반응형

전체 글26

[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.
[DW&BI] 데이터웨어하우스와 비즈니스인텔리젼스(BI) (킴벌데이터 웨어하우스) 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 킴벌의 이론에 따른 데이터웨어하우스와 BI의 상관관계를 대해 이야기 해보려합니다.데이터웨어하우스라는 모델? 에서 가장 유명한 저자는 킴벌과 인본이라는 사람입니다.이 두명의 이론에 따라 현재까지 DW의 모든 아키텍쳐가 설명된다고 해도 과언이 아닙니다. 이 두명의 DW이론에는 차이가 있습니다. 간략하게 설명드린다면 킴벌은 비즈니스의 주제에 따라 DW를 따로따로 구성해야한다는 것을 강조인본은 비즈니스에 관계없이 기업의 모든 데이터를 DW에 담고 필요할 때 마다 DW안에서 사용하는 점을 강조하고 있습니다. 사실 이 두분의 이론을 전부 이해하려면 400장이 넘는 책을 읽고 이해해야하지만, 오늘은 간략하게만 설명드렸습니다.아무튼 이 두명이 생각하는 DW의 개념이 다르.. 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.
[MSSQL]테이블 별 ROW 사이즈 추출 - 테이블 별 할당 데이터 사이즈출력 안녕하세요 투자하는 개발자 투개자입니다. ^^오늘은 전체 테이블 별 ROW 사이즈와 각 테이블 별 할당된 데이터 SIZE를 출력하는 쿼리에 대해 이야기하려합니다. 데이터베이스 내 여러 테이블을 관리하다 보면 테이블마다 할당된 size와 행수를 봐야할 일이 자주 있습니다. (프로젝트 등 협업)이때, 데이터베이스 내 테이블 별 size을 구할 수 있고, 스키마 별로 나눌 수 있는 쿼리를 공유할까 합니다.해당 쿼리는 프로젝트 기간동안 고객사 DBA분께서 나중에 도움이 많이 될꺼라고 공유해주셨던 쿼리입니다. 결론 부터 출력 화면부터 보여드리자면 저희가 최종적으로 보고자 하는 화면은 해당 화면입니다. 스키마, 테이블 별로 전체행수(TotalRows), 할달된 사이즈(Reserved), 실제 사이즈(DataSize.. 2020. 7. 16.
SCD(Slowly Changing Dimension) 개념 및 종류 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 SCD(Slowly Changing Dimension) 테이블에 대해 이야기하려 합니다.저번글에서 말씀드렸다 싶이 OLAP 환경에서는 이력, 즉 과거, 현재의 개념이 가장 중요합니다.디멘젼 테이블의 궁극적인 목적은 팩트테이블을 설명하는 정보테이블이라고 할 수 있기 떄문입니다. ※팩트테이블 : 값을 나타내는 테이블※디멘젼테이블 : 값을 설명하는 테이블 그렇다면 팩트를 설명하는 디멘젼테이블의 데이터가 바뀌어야만 하는 상황이라면 어떻게 해야할까요?단순히 UPDATE나 DELETE, INSERT를 하면 분석하고자 하는 펙트와 디멘젼이 엉켜버릴 수 있고, 정확한 분석을 할 수 없게 됩니다. 예를들어 설명하겠습니다.A사람은 2020년 1월 1일부터 B회사 영업A팀 부.. 2020. 7. 16.
OLTP와 OLAP환경의 차이 안녕하세요 투자하는 개발자 투개자입니다.오늘은 OLTP와 OLAP환경에 대해 알아보겠습니다.소위 운영계라는 전통적 데이터베이스 시스템에선 OLAP라는 개념이 필요없다고 생각합니다.이유는 한개의 트렌젝션이 발생하고 해당 트렌젝션을 insert, update, delete하는 일련의 과정을 하나의 프로세스로 움직이기 때문에 OLAP을 기반으로하는 정보계와는 다른 정보 저장, 운영에 중요성을 두기 때문입니다.그러나 데이터의 양이 방대해지고 데이터를 통해 insight을 찾으려는 수요가 폭발적으로 증가하면서 정보계 분석의 중요성이 나날이 높아졌습니다. 하여 운영계인 OLTP환경과 정보계인 OLAP환경을 둘다 경험하고 알고 있는 DBA들이 선호되는 추세입니다. 1. OLTP (On-Line Transaction .. 2020. 7. 15.
반응형