여유의 세습에 관하여...
일상/잡담 2024. 1. 19. 00:14

중학교 때 친했던 친구를 13년 만에 만났다.웃긴 이야기지만 학창 시절 나는 공부를 못했고 그 친구는 공부를 잘했다.친구가 중학교 2학년 때 고등학교 조기입학을 하면서 자연스럽게 연락이 뜸해지다 끊긴 것이다. 오랜만에 만나 같이 저녁을 먹고카페에서 서로의 지난날들을 공유하는데서로 공감을 하는 부분이 많았으며 대화가 정말 잘 흘러갔다. 그리고 우리는 많은 부분이 닮아있었다. 지난 13년 동안 서로 다른 환경에서 성장했지만생각의 흐름이라던가 가치관의 결이 비슷하다는 생각이 들었다.정말 신기한 경험이었다. 친구와 많은 얘기를 하면서 다채로운 생각들을 했지만그중 가장 와닿은 부분이 바로 '여유'에 관한 이야기였다. 그 친구와 나의 집안의 여유로움이 비슷한 듯하였다.여기서 말하는 여유가 정확히 재산을 의미하는 것..

MSSQL 계정 관리에 사용되는 명령어
컴퓨터 공부/SQL 2023. 8. 23. 22:31

SQL Server 보안 관련 계정관리에 사용되는 명령어 정리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -- login 계정 생성 CREATE login [login 계정명] WITH password = '[암호]' ; go -- user 계정 생성 CREATE USER [user 계정명] FOR LOGIN [login 계정명] ; GO -- login 계정 서버 역할 부여 EXEC sp_addsrvrolemember '[login 계정명]' , '[role]' ; GO -- login 계정 비활성화 ALTER LOGIN [login 계정명] DISABLE; GO -- user 계정 실행 권한 부여 GRANT EXECUTE ON [스..

MSSQL Lock 문제 해결
컴퓨터 공부/SQL 2023. 8. 21. 23:30

sp_who2 프로세스를 조회하는 명령어 BlkBy 칼럼을 통해 락이 걸렸는지 확인 가능하다. (결과가 '.'이 아니면 lock이 발생한 프로세스이다.) 현재 작업 중인 모든 세션을 확인할 수 있기 때문에 서버가 내려갔는지에 대한 것도 해당 명령어로 확인 가능하다. sp_lock 락이 걸린 세션을 확인하는 명령어 mode 컬럼에서 어떤 종류의 lock이 걸렸는지 확인 가능하다. lock의 종류는 다양한데, 대표적인 lock으로는 shared-lock(S)과 exclusive-lock(X)이 있다. S-lock은 트랜잭션이 데이터를 읽는 동안에만 잠금이 되는 것인데, 여러 트랜잭션이 동시에 하나의 개체를 읽을 수 있다. 다시 말해 S-lock끼리는 서로 충돌하지 않는다. 따라서 S-lock은 크게 문제를 ..

MSSQL 프로시저 캐시 / 버퍼 메모리
컴퓨터 공부/SQL 2023. 8. 18. 22:25

데이터베이스 작업을 하면서 주어진 자원을 최대한 효율적으로 사용하는 것은 하나의 중요한 포인트이다. 따라서 SQL문을 최적화하기 위해서 SQL튜닝을 진행하는데, SQL 튜닝을 진행하기 앞서 SQL에 대한 이해와 SQL 데이터의 분석이 선행되어야 한다. 프로시저 캐시(Procedure cache/Plan cache) 프로시저 캐시는 쿼리 플랜이 저장되는 메모리 공간으로 쿼리 플랜이 재사용될 수 있도록 함으로써 쿼리문을 컴파일하는데 드는 비용을 최소화하기 위해 사용된다. 일반적으로 SP(Stored Procesure)의 사용을 권장하는 이유가 쿼리 플랜을 재사용하여 성능 향상을 기대할 수 있기 때문인데, 프로시저 캐시도 비슷한 역할을 하는 것이다. 하지만 프로시저 캐시에 저장되는 ad-hoc 타입의 쿼리문의..

SQL 와일드카드
컴퓨터 공부/SQL 2023. 8. 16. 21:56

% (Represents zero or more characters) 가장 많이 사용하고 기본적인 와일드카드이다. 모든 문자를 포함하고 없는 경우도 해당된다. ex) SELECT * FROM tb_test WHERE name LIKE '%동%' 결과) 이동건 김동곤 박동 동숙 _ (Represents single character) 해당하는 문자만큼의 와일드카드이다. DB를 관리하다 보면 테이블명에 '_'를 많이 사용하게 되는데 이 때문에 곤란한 경우가 있다. ex) SELECT * FROM tables WHERE name LIKE 'tb_%' 결과) tb_test tb_item tbs 위과 같이 tb_로 시작하는 것을 조건으로 걸고 싶었지만 결과는 '_'를 와일드카드로 인식하여 의도하지 않은 결과를 출..