본문 바로가기

DBMS

(116)
[SQL Server] 랜덤 출력 NEWID 함수 NEWID() : UNIQUEIDENTIFIER 형식의 고유 값을 만든다. SELECT NEWID() 를 실행시켜보면 73F48BE7-21F5-4B4C-9491-F348C26F9F85 이러한 값이 랜덤으로 나오는 것을 확인할 수 있다. 그리고 ORDER BY 절과 같이 사용하게 되면 순서를 랜덤으로 출력해준다. 예를들어 온라인으로 책을 파는 사이트가 있다. 10권의 추천도서가 있고 랜덤하게 3권씩 보여주고 싶을 때 NEWID 함수를 이용해보자. -- 테이블 생성 CREATE TABLE dbo.RECOMMEND_BOOKS ( NUM INT IDENTITY , BOOK_NAME VARCHAR(50) ) GO -- 10권의 추천도서 등록 INSERT INTO dbo.RECOMMEND_BOOKS VALUES (..
[SQL Server] 에러 메시지를 원하는 언어로 변경하기 해외 서버에서 작업을 하다보면 한글이 아닌 그 나라의 언어를 사용하는 경우가 있다. 특히 중국이나 대만 서버에서 작업을 할 때 한문이 나오면 정신이 혼미해진다. 에러 메시지를 원하는 언어로 변경하여 보자. 에러 메시지를 한문으로 보여주고 있다. 다음 명령어를 실행 후 확인해보면 에러메시지가 지정한 언어로 나오는 것을 볼 수 있다. -- 한국어 SET LANGUAGE KOREAN GO -- 영어 SET LANGUAGE ENGLISH GO -- 일본어 SET LANGUAGE JAPANESE GO -- 설정할 수 있는 언어가 저장된 테이블 SELECT * FROM MASTER.DBO.SYSLANGUAGES GO SET LANGUAGE는 권한에 제약이 없고, 현재의 세션에서만 적용된다. 참고 : http://m..
[SQL Server] FULL SCAN 하는 SP 찾기 XML플랜을 이용하여 캐시된 플랜 중 FULL SCAN 하는 SP를 찾는 방법에 대해 소개합니다. [성능 모니터 – FULL Scans/Sec] 위와 같이 운영하고 있는 서버에서 많은 FULL SCAN 수치가 보인다면, 해당 서버는 성능적으로 문제가 발생할 가능성이 있다고 생각해 볼 수 있습니다. 그렇다면 빠르고 쉽게 FULL SCAN하는 쿼리를 찾아 수정 하여야 할 것 입니다. 하지만, 기본적인 DMV로는 인덱스에 대한 SCAN 수에 대해서는 확인 할 수 있지만, SP에 대해서는 SCAN 여부 조차 확인 할 수 없습니다. 그래서 DMV로 확인 할 수 있는 XML플랜을 XQUERY를 사용하여 찾아보는 쿼리를 만들어 보았습니다. with XMLNAMESPACES ('http://schemas.microso..
[SQL Server] 모든 테이블의 Row Count 구하기 COUNT 함수를 사용하지 않고 모든 테이블의 Row Count 구하기 보통 테이블의 Row Count를 구하기 위해서 SELECT COUNT(*) FROM TABLE 과 같이 COUNT 함수를 사용해서 Count를 구하게 된다. 데이터베이스 내의 모든 테이블의 Row Count 가 필요할 때 일일이 COUNT 함수를 사용하여 Row Count를 구할 수도 있지만 COUNT 함수를 사용하지 않고 한번에 모든 테이블의 Row Count 를 구해보자. SELECT T.NAME [TABLENAME], SUM(ST.ROW_COUNT)[ROWCOUNT] FROM SYS.TABLES T INNER JOIN SYS.SCHEMAS S ON T.SCHEMA_ID = S.SCHEMA_ID INNER JOIN SYS.IND..
[Oracle] 오라클 데이터베이스 시작 오라클 데이터베이스 시작 : 오라클 데이터베이스 서버의 기동은 인스턴스 시작(Nomount), 데이터베이스 마운트(Mount), 데이터베이스 오픈(Open) 순으로 진행된다. startup [force][restrict][nomount:mount:open] Shutdown ↓ Nomount : Instnce open - Control file 재생성 - DB 생성 ↓ Mount : Control file open - DB Mode 변경 - Critical 손실로부터 Recovery - Datafile 이름, 위치 변경 - DB 삭제 ↓ Open : All data file, redo open - 일반 user와 접속 가능 ex) startup nomount; ↓ alter dataase mount; ↓ ..
[SQL Server] SQLCMD(SQL Command) 사용하기 SQLCMD(SQL Command) 명령 프롬프트 상에서 SQL Server 서버에 접속해서 작업을 수행할 수 있도록 해 주는 도구 SSMS의 쿼리 창을 사용하지 않고, 명령 프롬프트에서 동일한 작업을 수행할 수 있다. SQLCMD.EXE를 실행하기 위한 옵션 sqlcmd [{ { -U login_id [ -P password ] } | –E trusted connection }] [ -N encrypt connection ][ -C trust the server certificate ] [ -z new password ] [ -Z new password and exit] [ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_name ] [ ..
[SQL Server] Job 정보 보기 SQL Server Job 정보 보기 SELECT NAME AS 'Job 이름' , DATE_CREATED AS 'Job 생성일' , ACTIVE_START_DATE AS '처음 Job 실행한 날짜' , NEXT_RUN_DATE AS '예약된 다음 Job 날짜' FROM MSDB.DBO.SYSSCHEDULES AS A INNER JOIN MSDB.DBO.SYSJOBSCHEDULES AS B ON A.SCHEDULE_ID = B.SCHEDULE_ID WHERE ENABLED = 1 -- 0:미사용, 1:사용 현재 사용하고 있는 Job 정보
[SQL Server] 로그인, 사용자 만들기 로그인, 사용자 만들기 -- 로그인 만들기 CREATE LOGIN TEST_LOGIN WITH PASSWORD = 'TEST_PASS' -- 사용자 만들기 CREATE USER TEST_USER FOR LOGIN TEST_LOGIN -- 로그인 없이 사용자 만들기 CREATE USER TEST_USER2 WITHOUT LOGIN