반응형

ㅇ Tunning Guide
   - DBO만 소유자


   - 커서와 View 지양
   - View내 '*' 존재시 원 Table 변경시 View Recompile 실시


   - SP 지향
   - SP 작성시 소유자 명시 : CREATE PROC DBO.SP명
   - SP 작성시 DB명 명시 : USE DB명
   - SP 작명시 SP외의 접두어 사용
   - SP는 'SET NOCOUNT ON'으로 시작


   - [Sybase] CREATE Tbl보다 SELECT INTO 구문 지향


   - SELECT는 필요한 값만 명시
   - COUNT(ColNm)보다 COUNT(*) 사용


   - DELETE시 FROM 붙이기(MySQL) : DELETE FROM table_name WHERE ...

  

   - UPDATE시 Index Column은 지양

   - JOIN에 의한 UPDATE 지양

  

   - WHERE절은 INDEX 또는 INDEX Hint 사용

   - 부정문은 긍정문으로 수정

   -  <, >, = 사용시 가능한 '=' 포함

   - Column 변환 금지

   - EXISTS()로 대체가능한 COUNT(*)는 EXISTS() 사용

   - LIKE 지양 : 코드 찾기로 유도

   - MIN과 MAX 함께 사용 지양

   - SUBSTRING  지양 : Table 설계시 분해로 해소


   - TRANSACTION에서 사용하는 Table은 타 Program과 비교하여 일관된 순서 적용

   - TRANSACTION은 가급적 짧게 관리


ㅇ Archive 정리(query tool 사용)
USE PUBS                                                 -- PUBS DB 사용
BACKUP LOG PUBS WITH TRUNCATE_ONLY  -- PUBS DB 로그 백업후 삭제
GO
SP_HELPDB PUBS                                      -- PUBS DB 정보 확인(Size 조정전)
DBCC SHRINKFILE(PUBS_LOG,#)                 -- 줄일 File Size #(단위: MB) 입력
SP_HELPDB PUBS                                      -- PUBS DB 정보 확인(Size 조정후)
※ 관련파일 : MSSQL > Data > xxx_LOG.xxx


ㅇ Sybase Attribute Value

max memory : Max Memory, 1M = 512page

number of locks : 동시 Locking 개수

precedure cache size : SP Cache Size, 1M = 512page

shared memory starting address : DB Start시 할당 된 메모리 할당여부 결정, 1 = 할당영역 확보

statement cache size : Statement cache 사용할 영역

max online engines : OS CPU 개수에 의존적인 DB사용 최대 엔진수

number of engines at startup : DB Start시 Start할 엔진 수


ㅇ 기타

※ Oracle : Ora, Sybase : Syb

ABS()                                                                  : 절대값

AS                                                                       : [MS, Syb]Alias

AS                                                                       : [Ora]Column Alias 만 가능

AVG()                                                                  : 평균값

ALTER TABLE TblNm ADD ColNm ColType(#)            : TblNm에 ColNm Add
BACKUP DATABASE DB명 TO DISK = '디스크:\경로\백업파일명'  : DB Backup

BEGIN TRAN                                                         : Transaction 시작

BEGIN TRANSACTION...COMMIT TRANSACTION       : Transaction 처리

CASE .. WHEN .. THEN .. ELSE .. END                     : [Syb,MS] 조건 분기

SQL Query 참고사항


ㅇ Tunning Guide
   - DBO만 소유자


   - 커서와 View 지양
   - View내 '*' 존재시 원 Table 변경시 View Recompile 실시


   - SP 지향
   - SP 작성시 소유자 명시 : CREATE PROC DBO.SP명
   - SP 작성시 DB명 명시 : USE DB명
   - SP 작명시 SP외의 접두어 사용
   - SP는 'SET NOCOUNT ON'으로 시작


   - [Sybase] CREATE Tbl보다 SELECT INTO 구문 지향


   - SELECT는 필요한 값만 명시
   - COUNT(ColNm)보다 COUNT(*) 사용


   - DELETE시 FROM 붙이기(MySQL) : DELETE FROM table_name WHERE ...

  

   - UPDATE시 Index Column은 지양

   - JOIN에 의한 UPDATE 지양

  

   - WHERE절은 INDEX 또는 INDEX Hint 사용

   - 부정문은 긍정문으로 수정

   -  <, >, = 사용시 가능한 '=' 포함

   - Column 변환 금지

   - EXISTS()로 대체가능한 COUNT(*)는 EXISTS() 사용

   - LIKE 지양 : 코드 찾기로 유도

   - MIN과 MAX 함께 사용 지양

   - SUBSTRING  지양 : Table 설계시 분해로 해소


   - TRANSACTION에서 사용하는 Table은 타 Program과 비교하여 일관된 순서 적용

   - TRANSACTION은 가급적 짧게 관리


ㅇ Archive 정리(query tool 사용)
USE PUBS                                                 -- PUBS DB 사용
BACKUP LOG PUBS WITH TRUNCATE_ONLY  -- PUBS DB 로그 백업후 삭제
GO
SP_HELPDB PUBS                                      -- PUBS DB 정보 확인(Size 조정전)
DBCC SHRINKFILE(PUBS_LOG,#)                 -- 줄일 File Size #(단위: MB) 입력
SP_HELPDB PUBS                                      -- PUBS DB 정보 확인(Size 조정후)
※ 관련파일 : MSSQL > Data > xxx_LOG.xxx


ㅇ Sybase Attribute Value

max memory : Max Memory, 1M = 512page

number of locks : 동시 Locking 개수

precedure cache size : SP Cache Size, 1M = 512page

shared memory starting address : DB Start시 할당 된 메모리 할당여부 결정, 1 = 할당영역 확보

statement cache size : Statement cache 사용할 영역

max online engines : OS CPU 개수에 의존적인 DB사용 최대 엔진수

number of engines at startup : DB Start시 Start할 엔진 수


ㅇ 기타

※ Oracle : Ora, Sybase : Syb

ABS()                                                                  : 절대값

AS                                                                       : [MS, Syb]Alias

AS                                                                       : [Ora]Column Alias 만 가능

AVG()                                                                  : 평균값

ALTER TABLE TblNm ADD ColNm ColType(#)            : TblNm에 ColNm Add
BACKUP DATABASE DB명 TO DISK = '디스크:\경로\백업파일명'  : DB Backup

BEGIN TRAN                                                         : Transaction 시작

BEGIN TRANSACTION...COMMIT TRANSACTION       : Transaction 처리

CASE .. WHEN .. THEN .. ELSE .. END                     : [Syb,MS] 조건 분기

CEIL()                                                                  : [Ora] 올림

CEILING()                                                             : [Syb] 올림

FLOOR()                                                               : [Syb] 버림

CHR()                                                                  : [Ora] Data를 Character로 변환

CHAR()                                                                : [Syb] Data를 Character로 변환

COMMIT                                                              : Transation 처리 및 저장

CONVERT(INT,VarNm);                                          : [Syb] VarNm을 Int화

CONVERT(VARCHAR(10),GETDATE(),101)               : [Syb] mm/dd/yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),102)               : [Syb] yyyy.mm.dd 로 변경

CONVERT(VARCHAR(10),GETDATE(),103)               : [Syb] dd/mm/yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),104)               : [Syb] dd.mm.yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),105)               : [Syb] dd-mm-yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),106)               : [Syb] dd mm yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),107)               : [Syb] mm dd, yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),108)               : [Syb] hh:mi:ss 로 변경

CONVERT(VARCHAR(10),GETDATE(),109)       : [Syb] mm dd yyyy h:mi:ss:??PM/AM로 변경

CONVERT(VARCHAR(10),GETDATE(),110)               : [Syb] mm-dd-yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),111)               : [Syb] yyyy/mm/dd 로 변경

CONVERT(VARCHAR(10),GETDATE(),112)               : [Syb] yyyymmdd 로 변경

CONVERT(VARCHAR(10),GETDATE(),113)               : [Syb] yy mm yyyy hh:mm:ss:???로 변경

CONVERT(VARCHAR(10),GETDATE(),114)               : [Syb] hh:mm:ss:??? 로 변경

CREATE TABLE TblNm ( Col1 ColType(#) NOT NULL, ..) : TblNm Create

CREATE TABLE TblNm ( Col1 ColType(#) default 값, ..)  : [Syb] TblNm Create, Defualt 값 부여

DATALENGTH()                                                      : [Syb] 문자열 길이

DATEADD(DAY, ±일, GETDATE())                            : [Syb] 금일 ±일 더하기
DATEADD(MONTH, ±월, GETDATE())                       : [Syb] 금월 ±월 더하기
DATEADD(YEAR, ±년, GETDATE())                          : [Syb] 금년 ±년 더하기

DATEDIFF()                                                           : [Syb] Date간 차이

DECLARE @@VarNm char(10)                                 : [Syb] Grobal 변수 선언

DECLARE @VarNm char(10)                                   : [Syb] Local 변수 선언

DECODE()                                                             : [Ora] Case문 대체

DUMP DATABASE DB_Nm FROM "/PathNM/FileNm.dmp"  : [Syb] DB Backup

exec sp_rename 'TblNm.ColNm','NewColNm','column' : [Syb] ColNm수정

EXEC sp_helpdb DBMS_Nm                                     : [Syb] DBMS size, owner 정보
EXEC sp_primarykey TblNm, Col1, Col2                     : TblNm에 Col1, Col2를 PK로 지정

exec sp명 parameter값                                            : [Syb] Sp 구동

EXISTS (SELECT Col FROM Tbl Where Tbl.Col = Tbl2.Col : [Syb] 복수개의 SELECT 값 비교

FROM Tbl1 = Tbl2(+)                                             : [Ora] Left Outer Join

FROM Tbl1 *= Tbl2                                               : [Syb] Left Outer Join

GETDATE()                                                            : [Syb,MS] 현 시간

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[sp_MNG_ATTD_REC_I]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

                                                                            : Object 존재유무 확인
INSERT INTO TblNm VALUES('V1','V2')                     : V1, V2를 TblNm에 추가

INSERT INTO TblNM SELECT ...                               : [Syb] 조회결과 INSERT
ISNULL()                                                               : [Syb] Null을 타 문자로 치환

isql -U사용자ID -P패스워드 -i입력파일 -o출력파일      : [Syb]쿼리 결과 파일로 만들기

LEN()                                                                    : [Syb] 문자열 길이

LENGTH()                                                              : [Ora] 문자열 길이

LOAD DATABASE DB_Nm FROM "/PathNm/FileNm.dum"  : [Syb]에서 DB Restore

LOWER()                                                               : 소문자로 변환

LOWNUM                                                               : [Ora] 행의 갯수 제한시 사용

LTRIM()                                                                : [Syb] Left 공란 제거

MAX()                                                                   : 최대값

MIN()                                                                    : 최소값

NVL()                                                                   : [Ora]에서 Null을 타 문자로 치환

print "%1!", @변수명                                                : [Syb] SP의 변수 출력하기
RAND()                                                                 : [Syb]에서 난수 구하기

REPLACE()                                                           : [Ora]에서 문자치환

ROLLBACK                                                            : Transaction 처리 취소

RTRIM()                                                                : [Syb] Right 공란 제거

SELECT * FROM #TmpTblNm                                   : [Syb] 임시 테이블 사용
SELECT * FROM TblNm < FlNm.sql > FlNm2.out         : [Syb] FlNm.sql 결과 → FlNn2.out

SELECT db_name()                                                : [Syb]현재 Login DB명 Display

SELECT CONVERT(CHAR(10), GETDATE(), 126)        : Date Type  → Char(10) Type
SELECT CONVERT(CHAR(10), GETDATE(), 112)        : Date Type  → Char(10) Type

SELECT * INTO NewTblNm FROM OldTblNm               : [Syb] CREATE Tbl, INSERT Tbl

SELECT ROWNUM = IDENTITY(9)                              : [Syb] Oracle Rownum 따라하기

 , ColNm
INTO #T
FROM TblNm

SET IDENTITY_INSERT TblNm ON                              : Identity Column 수정 가능

SET ROWCOUNT #                                                  : [Syb] #건만큼 반환

sp_cacheconfig "default data cache"                        : [Syb] 할당된 Default Data Cache 조회

sp_configure "number of user connections",100          : [Syb] 동시 접속자 100명

sp_configure "lock scheme",0,"datarows                   : [Syb] Row Level Locking

sp_help                                                                 : [Syb] 현재 Login Table 조회

sp_help Tbl_Nm                                                      : [Syb] Tbl_Nm 정보 조회

sp_helpdb DB_Nm                                                   : [Syb] DB_Nm 정보조회

sp_lock                                                                 : [Syb]Locking정보 Display

sp_who                                                                 : [Syb] 접속된 Process

STR()                                                                    : [Syb] Numeric을 Char로 변환

STUFF()                                                                : [Syb] 문자치환

SUBSTR()                                                              : [Ora] Substring

SUBSTRING()                                                         : [Syb] Substring
SUM()                                                                   : 합계

SYSDATE                                                              : [Ora] 현 시간

TO_CHAR()                                                            : [Ora] Data을 Char로 변환

TO_DATE()                                                             : [Ora] Data을 Date로 변환

TO_NUMBER()                                                        : [Ora] Data을 Numeric로 변환

TOP 1                                                                    : [Syb] 첫 Row Return

TRUNCATE TABLE TblNm                                         : TblNm의 모든 데이터 삭제

UNION                                                                    : SELECT 결과 APPEND - 교집합

UNION ALL                                                             : SELECT 결과 APPEND
UPDATE TblNm SET Col1='xxx', Col2='yyy'                 : TblNm의 Col1, Col2 Update
UPDATE STATISTICS TblNM                                     : TblNm 통계 갱신

UPDATE Tbl1                                                          : [Syb] Join Update

Set Col1 = Col2

FROM Tbl1 INNER JOIN Tbl2

ON Tbl1.Key1 = Tbl2.Key2
UPPER()                                                                : 대문자로 변환

USE DB_Nm                                                           : DB_nm으로 이동

CHR()                                                                  : [Ora] Data를 Character로 변환

CHAR()                                                                : [Syb] Data를 Character로 변환

COMMIT                                                              : Transation 처리 및 저장

CONVERT(INT,VarNm);                                          : [Syb] VarNm을 Int화

CONVERT(VARCHAR(10),GETDATE(),101)               : [Syb] mm/dd/yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),102)               : [Syb] yyyy.mm.dd 로 변경

CONVERT(VARCHAR(10),GETDATE(),103)               : [Syb] dd/mm/yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),104)               : [Syb] dd.mm.yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),105)               : [Syb] dd-mm-yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),106)               : [Syb] dd mm yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),107)               : [Syb] mm dd, yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),108)               : [Syb] hh:mi:ss 로 변경

CONVERT(VARCHAR(10),GETDATE(),109)       : [Syb] mm dd yyyy h:mi:ss:??PM/AM로 변경

CONVERT(VARCHAR(10),GETDATE(),110)               : [Syb] mm-dd-yyyy 로 변경

CONVERT(VARCHAR(10),GETDATE(),111)               : [Syb] yyyy/mm/dd 로 변경

CONVERT(VARCHAR(10),GETDATE(),112)               : [Syb] yyyymmdd 로 변경

CONVERT(VARCHAR(10),GETDATE(),113)               : [Syb] yy mm yyyy hh:mm:ss:???로 변경

CONVERT(VARCHAR(10),GETDATE(),114)               : [Syb] hh:mm:ss:??? 로 변경

CREATE TABLE TblNm ( Col1 ColType(#) NOT NULL, ..) : TblNm Create

CREATE TABLE TblNm ( Col1 ColType(#) default 값, ..)  : [Syb] TblNm Create, Defualt 값 부여

DATALENGTH()                                                      : [Syb] 문자열 길이

DATEADD(DAY, ±일, GETDATE())                            : [Syb] 금일 ±일 더하기
DATEADD(MONTH, ±월, GETDATE())                       : [Syb] 금월 ±월 더하기
DATEADD(YEAR, ±년, GETDATE())                          : [Syb] 금년 ±년 더하기

DATEDIFF()                                                           : [Syb] Date간 차이

DECLARE @@VarNm char(10)                                 : [Syb] Grobal 변수 선언

DECLARE @VarNm char(10)                                   : [Syb] Local 변수 선언

DECODE()                                                             : [Ora] Case문 대체

DUMP DATABASE DB_Nm FROM "/PathNM/FileNm.dmp"  : [Syb] DB Backup

exec sp_rename 'TblNm.ColNm','NewColNm','column' : [Syb] ColNm수정

EXEC sp_helpdb DBMS_Nm                                     : [Syb] DBMS size, owner 정보
EXEC sp_primarykey TblNm, Col1, Col2                     : TblNm에 Col1, Col2를 PK로 지정

exec sp명 parameter값                                            : [Syb] Sp 구동

EXISTS (SELECT Col FROM Tbl Where Tbl.Col = Tbl2.Col : [Syb] 복수개의 SELECT 값 비교

FROM Tbl1 = Tbl2(+)                                             : [Ora] Left Outer Join

FROM Tbl1 *= Tbl2                                               : [Syb] Left Outer Join

GETDATE()                                                            : [Syb,MS] 현 시간

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[sp_MNG_ATTD_REC_I]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

                                                                            : Object 존재유무 확인
INSERT INTO TblNm VALUES('V1','V2')                     : V1, V2를 TblNm에 추가

INSERT INTO TblNM SELECT ...                               : [Syb] 조회결과 INSERT
ISNULL()                                                               : [Syb] Null을 타 문자로 치환

isql -U사용자ID -P패스워드 -i입력파일 -o출력파일      : [Syb]쿼리 결과 파일로 만들기

LEN()                                                                    : [Syb] 문자열 길이

LENGTH()                                                              : [Ora] 문자열 길이

LOAD DATABASE DB_Nm FROM "/PathNm/FileNm.dum"  : [Syb]에서 DB Restore

LOWER()                                                               : 소문자로 변환

LOWNUM                                                               : [Ora] 행의 갯수 제한시 사용

LTRIM()                                                                : [Syb] Left 공란 제거

MAX()                                                                   : 최대값

MIN()                                                                    : 최소값

NVL()                                                                   : [Ora]에서 Null을 타 문자로 치환

print "%1!", @변수명                                                : [Syb] SP의 변수 출력하기
RAND()                                                                 : [Syb]에서 난수 구하기

REPLACE()                                                           : [Ora]에서 문자치환

ROLLBACK                                                            : Transaction 처리 취소

RTRIM()                                                                : [Syb] Right 공란 제거

SELECT * FROM #TmpTblNm                                   : [Syb] 임시 테이블 사용
SELECT * FROM TblNm < FlNm.sql > FlNm2.out         : [Syb] FlNm.sql 결과 → FlNn2.out

SELECT db_name()                                                : [Syb]현재 Login DB명 Display

SELECT CONVERT(CHAR(10), GETDATE(), 126)        : Date Type  → Char(10) Type
SELECT CONVERT(CHAR(10), GETDATE(), 112)        : Date Type  → Char(10) Type

SELECT * INTO NewTblNm FROM OldTblNm               : [Syb] CREATE Tbl, INSERT Tbl

SELECT ROWNUM = IDENTITY(9)                              : [Syb] Oracle Rownum 따라하기

 , ColNm
INTO #T
FROM TblNm

SET IDENTITY_INSERT TblNm ON                              : Identity Column 수정 가능

SET ROWCOUNT #                                                  : [Syb] #건만큼 반환

sp_cacheconfig "default data cache"                        : [Syb] 할당된 Default Data Cache 조회

sp_configure "number of user connections",100          : [Syb] 동시 접속자 100명

sp_configure "lock scheme",0,"datarows                   : [Syb] Row Level Locking

sp_help                                                                 : [Syb] 현재 Login Table 조회

sp_help Tbl_Nm                                                      : [Syb] Tbl_Nm 정보 조회

sp_helpdb DB_Nm                                                   : [Syb] DB_Nm 정보조회

sp_lock                                                                 : [Syb]Locking정보 Display

sp_who                                                                 : [Syb] 접속된 Process

STR()                                                                    : [Syb] Numeric을 Char로 변환

STUFF()                                                                : [Syb] 문자치환

SUBSTR()                                                              : [Ora] Substring

SUBSTRING()                                                         : [Syb] Substring
SUM()                                                                   : 합계

SYSDATE                                                              : [Ora] 현 시간

TO_CHAR()                                                            : [Ora] Data을 Char로 변환

TO_DATE()                                                             : [Ora] Data을 Date로 변환

TO_NUMBER()                                                        : [Ora] Data을 Numeric로 변환

TOP 1                                                                    : [Syb] 첫 Row Return

TRUNCATE TABLE TblNm                                         : TblNm의 모든 데이터 삭제

UNION                                                                    : SELECT 결과 APPEND - 교집합

UNION ALL                                                             : SELECT 결과 APPEND
UPDATE TblNm SET Col1='xxx', Col2='yyy'                 : TblNm의 Col1, Col2 Update
UPDATE STATISTICS TblNM                                     : TblNm 통계 갱신

UPDATE Tbl1                                                          : [Syb] Join Update

Set Col1 = Col2

FROM Tbl1 INNER JOIN Tbl2

ON Tbl1.Key1 = Tbl2.Key2
UPPER()                                                                : 대문자로 변환

USE DB_Nm                                                           : DB_nm으로 이동

+ Recent posts