본문 바로가기

Programming

sql tip 정리

-------------------------------------------------------------------
* Index hint 인덱스를 태운다
-------------------------------------------------------------------

table name + WITH(INDEX(인덱스이름))
  + WITH(INDEX = 인덱스이름)
-------------------------------------------------------------------

ex ) 

UPDATE BADUKUSER SET nMoney = @nSetMoney FROM BADUKUSER WITH ( INDEX = IX_nMoney ) 
WHERE nMoney <= 20000 AND nTemp2 = 0 OPTION (MAXDOP 2);



* CPU 높게 치는거 막아줌 - 쿼리의 마지막에 붙여넣는다
 - cpu 를 더 많이 써서 쿼리를 빨리 끝냄.
-------------------------------------------------------------------
맨 끝 + OPTION (MAXDOP 2)
-------------------------------------------------------------------


*WAITFOR 
-------------------------------------------------------------------
* WAITFOR TIME '04:35' ( 4시 35분까지 기다렸다가 수행 )
* WAITFOR DELAY '00:00:20' ( 20초 기다린다. )
-------------------------------------------------------------------

* 테이블변수( 프로시저 내에서 사용할때 임시테이블 대체 )
DECLARE @tb_a TABLE( szID CHAR(20) )



-------------------------------------------------------------------
*쿼리 수행 통계
-------------------------------------------------------------------
SET STATISTICS IO ON
SET STATISTICS PROFILE ON
SET STATISTICS TIME ON

exec 프로시저

SET STATISTICS IO OFF
SET STATISTICS PROFILE OFF
SET STATISTICS TIME OFF
-------------------------------------------------------------------


* MYSQL nIdx 자동 증가
-------------------------------------------------------------------
필드명 자료형 AUTO_INCREMENT PRIMARY KEY,
-------------------------------------------------------------------


* SET ANSI_NULLS ON 옵션설정
-------------------------------------------------------------------
LINKED SERVER로 이기종 연결 후 저장프로시저 생성오류가 날 경우
( 다른 DB 테이블을 참조할때 오류)
CREATE PROC 구문전에 아래 구문을 먼저 적는다.

SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
GO

CREATE PROC SP_XXX_XXXX
AS
......



* DBCC CHECKDB
-------------------------------------------------------------------
DB 테이블의 오류 및 상태를 체크해 준다
정상 테이블일 경우 행의 수만 표시하며
오류가 난 부분은 그 테이블을 알려준다

DBCC CHECKDB 
DBCC CHECKDB ('netgodori' , REPAIR_ALLOW_DATA_LOSS)
-------------------------------------------------------------------

* 단일 접속 / 다중 접속 세팅
ALTER DATABASE "DB명" SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

ALTER DATABASE "DB명" SET MULTI_USER


* DBCC CHECKTABLE( "테이블이름" )


* DBCC DBREINDEX
-------------------------------------------------------------------
테이블의 인덱스를 다시 잡는다
-------------------------------------------------------------------


MYSQL
( 테이블 존재 여부 )
* SHOW TABLES LIKE 'tb_table'
* Information_schema
 -  SELECT COUNT(0) FROM information_schema.tables WHERE table_schema = 'poplar' AND table_name = 'tb_wtool_db_info';
* CREATE TABLE IF NOT EXISTS tb_a ( szID CHAR(20) );

* IF NOT EXISTS (Select TABLE_NAME From information_schema.TABLES Where TABLE_SCHEMA = 'LP2GO' AND TABLE_NAME = 'tmp_buy_user_list_result' )

'Programming' 카테고리의 다른 글

Media wiki 설치 및 세팅  (0) 2012.02.01
sql server db 복원  (0) 2012.01.19
gdb 정리  (0) 2012.01.18
linux 자주쓰는 명령어..정리  (0) 2012.01.18
리눅스 사용자 관련 명령어  (0) 2011.03.03