본문 바로가기
반응형

전체 글26

데이터베이스 HA, RAC 정리 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 데이터베이스 이중화! HA구성, RAC구성을 정리해보겠습니다.DBA를 꿈꾸고 있는 초보개발자이기에 데이터베이스를 관리하는데 가장 중요하다고 하는 HA 구성에 대해 정리하고 싶어 글을 쓰게 되었습니다. DBA 모집공고를 보시면 자격요건으로 빼먹지 않고 나오는 항목이 HA구성경험이여서 DBA를 꿈꾸고 있다면 반드시 알아야할 데이터베이스 개념이기에 정리하려합니다. 결론부터 말하자면 두 구성 모두 DB구성을 위한 것이며 고가용성을 위한 서버 구성입니다.어떤 DB서버를 구성해야할지는 상황, 환경 구성하시면 됩니다. 1. HA 구성 High AvailabilityHA는 2개의 서버를 이용하여 하나는 Active, 나머지 하나는 Standby 상태로 구성해둔다는 개념입.. 2020. 7. 15.
[MSSQL] SQL 쿼리 튜닝 -> 조인(JOIN)로 답을 찾자!(NESTED LOOP JOIN (중첩반복),SORT MERGE JOIN (정렬병합),HASH JOIN (해시매치)) 안녕하세요 투자하는 개발자 투개자입니다. 저번글에선 실행계획과 인덱스를 공부해 SQL쿼리를 튜닝하는 방법에 대해 알려드렸는데요.https://in-harvey-it.tistory.com/6 오늘은 조인을 통해 SQL쿼리를 튜닝하는 방법에 대해 알아보겠습니다! 조인의 방식은 3가지로 구분됩니다. 1. NESTED LOOP JOIN (중첩반복)2. SORT MERGE JOIN (정렬병합)3. HASH JOIN (해쉬매치) 우리가 흔히들 알고 있는 INNER, LEFT OUTER, RIGHT OUTER JOIN은 조인의 종류이고위의 3가지는 내부적으로 실행되는 조인의 방식입니다. 즉 조인의 종류는 논리적이고 조인의 방식은 물리적입니다. 1. NESTED LOOP JOIN (중첩반복) 바깥 테이블의 처리 범위를.. 2020. 7. 15.
[MSSQL] SQL 쿼리 튜닝 -> 인덱스(index)로 답을 찾자! 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 SQL쿼리튜닝에 대해 이야기해보려합니다. 현재 1년차 개발자로 일하고 있는 저는 SQL 쿼리를 어떻게 하면 소위 더 잘 짤수 있을까를 많이 고민하고 있습니다.쿼리를 완성하고 나면 오버타임으로 좌절감에 빠지기도 하고, 어떻게 튜닝해야할지 몰라 난감하며 밤새 노력하시는 개발자님들을 위해(저와같은...ㅠㅠ) 조금이나마 도움이 되고자 글을 작성합니다. 두서없이 작성해도 이해해주시고 시작해보겠습니다. SQL튜닝하는 방법은 다양하고, 알아야할 부분도 많습니다. 그러나 오늘 글에서는 인덱스와 조인을 통해 쿼리 성능을 높이는 방법에 대해 글을 써보려 합니다. 우선 쿼리를 튜닝하기 위해선 실행계획을 알아야합니다. 각 DB마다 실행계획을 확인할 수 있는 방법은 다르지만 MS.. 2020. 7. 14.
[MSSQL] 쿼리 CPU사용량 조회 -> 튜닝 시작 전 CPU확인 방법 안녕하세요. 투자하는 개발자 투개자입니다! 오늘은 쿼리 수행 시 해당 쿼리의 CPU사용량을 알아내는 쿼리를 배워보겠습니다.옵티마이져의 실행계획이 너무 비싸거나, 작성한 쿼리가 너무 오래돈다싶은 경험이 다들 한번쯤 있으실것 같습니다.DB공부와 쿼리튜닝을 잘하시는 분들이라면 내부적인 논리연산을 정확히 알고 계셔서 어디가 문제이고, 어느부분을 고쳐야할지 알 수 있으시겠지만, 초보자 혹은 중급자 분들도 어렵게 생각하는 부분이 쿼리튜닝이라고 생각합니다. 그래서 오늘 알려드릴 쿼리는 작성한 쿼리의 CPU사용량이 얼마인지 알아내는 쿼리입니다.다들 아시겠지만, 회사를 다니다보면 어떤 업무를 수행할 때 왜 해야하는지에 대한 근거가 있어야합니다.그래서 이번 쿼리를 통해 쿼리들의 CPU를 확인하고 바꿔야겠다는 경각심을 들게.. 2020. 7. 14.
[MSSQL] WITH 사용해서 연속숫자 조회/뽑기 안녕하세요 투자하는 개발자 투개자입니다. 오늘은 WITH문을 사용해서 연속숫자를 조회? 뽑는 쿼리를 작성해보겠습니다. 개발을 할때 연속된 숫자를 뽑아 다양한 쿼리에 조인할 때도 있고, ETL 파이프라인을 개발하면서연속 숫자로 이루어진 값에 다양한 값을 조인해서 원하는 테이블을 개발할 수 있습니다. 저는 해당 쿼리를 활용해 LOG테이블 레코드에서 원하는 테이블에 해당하는 LOG기록 및 COUNT를 GROUP BY 하여 조회했습니다.출력된 ROW COUNT로 FOR문을 돌려 다양한 작업들을 개발했습니다. WITH문을 활용해 연속된 숫자를 뽑는 쿼리는 바로 해당 쿼리입니다. WITH TEST AS(SELECT 1 AS numUNION ALLSELECT num + 1FROM TESTWHERE num 2020. 7. 13.
[MSSQL] 스키마 별 전체 행수(ROW)수 구하기 - COUNT 안녕하세요 투자하는 개발자 투개자입니다.MSSQL 내 시스템 테이블을 통해 행수를 구하는 쿼리를 알아보겠습니다. 데이터 베이스를 관리하다 보면 원하는 테이블의 ROW COUNT가 필요한 상황이 많습니다.보통은 SELECT문으로 COUNT를 구하지만, 만약 50개 100개의 테이블 행수가 필요한 상황이라면 어떻게 해야할까요?SELECT COUNT(*) FROM [스키마명].[테이블명]으로 하나하나 쿼리를 작성하실 건가요?이와같은 상황에서 필요한 것이 시스템 테이블입니다. sys라는 스키마로 사용되는 해당 테이블은 SQL_SERVER에서 지원되는 시스템 테이블입니다. 이를 활용해서 원하는 스키마 내 테이블 행수(ROW COUNT)를 한번에 조회할 수 있는 쿼리를 작성 할 수 있습니다. 우선 어떻게 작성하는지.. 2020. 7. 13.
[MSSQL] DELETE문 TRUNCATE문 DROP문 비교 및 사용법 안녕하세요. 투자하는 개발자입니다오늘은 데이터를 삭제할 때 사용하는 DELETE, TRUNCATE, DROP 쿼리들을 배워보겠습니다.모든 DB들 마다 그들의 철학과 정책이 다르겠지만, 최소한 CRUD는 같은 쿼리를 사용하기 때문에기본적인 쿼리를 알고 계신다면 데이터베이스에 관계없이 활용하실 수 있습니다. 데이터를 삭제할 때 사용하는 쿼리는 DELETE문, TRUNCATE문 DROP문이 있습니다.결국 최종목표인 데이터를 삭제하는 결과는 동일해지나, 각각의 차이점이 존재합니다. 구분 테이블 저장공간 속도 복구 DELETE 존재 존재 느림 가능 TRUNCATE 삭제 삭제 빠름 불가 DROP 삭제 삭제 빠름 불가 1. DELETEDELETE FROM [스키마].[테이블명]cs 입력한 테이블의 데이터를 삭제 하실.. 2020. 7. 13.
[MSSQL] UPDATE문 및 사용법 MSSQL의 UPDATE 문입니다. IT개발에서 가장 중요한 4가지를 꼽으라면 CRUD! CREATE, READ, UPDATE ,DELETE입니다.이 4가지를 구현할 실력을 갖추었다면 기본은 되어있다고 한다. 특히 웹에서 CRUD를 완벽히 구현할 수 있다면 나머지는 추가적인것임으로 개발이 끝났다고 해도 과언이 아닙니다. 아무튼 MSSQL (SQL_SERVER) 카테고리를 만들고 처음으로 작성하는 글이여서 어떤 쿼리를 써볼까 많이 고민했습니다. CREATE, SELECT, DELETE문 도 작성할 테지만, UPDATE를 선정한 이유는 별 이유없습니다. 데이터베이스를 처음 배울때 가장 많이 구글링 했던 쿼리가 UPDATE쿼리여서 작성하게 되었습니다. 왜그런지 모르지만 UPDATE쿼리가 특히 안외워졌기 때문에.. 2020. 7. 13.
반응형