소리소문 없이... 사랑도 명예도 이름도 남김 없이...
DexCore.net

DataBase 261

SP 개발 진행시 주의사항

SP 개발 진행시 주의사항 T-SQL 작성 시 체크리스트- 최소의 SQL문으로 구성된 집합 기반의 솔루션을 작성- 커서는 많은 리소스를 필요로 하며 상당한 부하를 발생시키므로 사용하지 않는 것이 최선- 다양한 솔루션을 개발하고 각 솔루션의 성능, 코드의 명료성, 확장성 등을 비교하여 최적의 솔루션을 찾는대 노력- * 쿼리 작성 후에는 결과만 확인하지 말고 항상 쿼리 옵티마이저가 어떤 실행 계획을 작성했는지 확인 * (SET SHOWPLAN_ALL ON , SET SHOWPLAN_TEXT ON, SET STATISTICS PROFILE ON)- SELECT 문에 * 대신 필요한 컬럼명 명시 , 네트워크 트래픽 증가, 테이블이나 뷰의 구조 변경시 오류 발생 가능성- INSERT 문에 실제로 값이 입력되는 컬..

DataBase/SQL Server 2015.05.22

MS SQL SERVER LOCK

데이타베이스(DB)를 운영하다 보면 가끔 이유 없이 조회 결과가 나오지 않거나, 타임아웃(TimeOut)에 걸려 커넥션(Connection)이 끊어지는 경우가 종종 있습니다.메모리나 CPU가 비정상적으로 높은 수치를 유지하고 있어서 DBMS가 정상 작동하지 않는다거나하는 경우의 증상이 그러하며 왕왕 테이블(Table) 락(Lock)이 발생한게 그 이유가 되기도 합니다ㅜ운영 중인 DBMS가 MS-SQL일 경우 간단하게 락(Lock)을 검출하고 이를 해제하는 방법을 소개합니다. -- Lock 걸린 SPID 검출 (Mode 부분이 X 표시된것이 LOCK)EXEC sp_lock --Lock 걸린 spid를 입력하면 현재 돌고 있는 쿼리를 출력해 준다.dbcc inputbuffer(80) --Lock을 유발하는 ..

DataBase/SQL Server 2015.04.20

[오라클] 테이블, 컬럼 목록 조회

1. 테이블 목록조회=========================================SELECT *FROM all_all_tables; SELECT *FROM dba_tables; SELECT *FROM ALL_OBJECTSWHERE OBJECT_TYPE = 'TABLE' -- 접속한 계정의 테이블 목록보기SELECT *FROM tabs; SELECT *FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'; SELECT *FROM USER_TABLES; -- 테이블 코멘트 보기SELECT *FROM ALL_TAB_COMMENTSWHERE TABLE_NAME = '테이블명' SELECT *FROM USER_TAB_COMMENTS; 2. 컬럼 목록조회===========..

DataBase/Oracle 2015.02.13

Oracle 암호화 / 복호화

dbms_obfuscation_toolkit 의 경우 지원되는 암호화 알고리즘이 너무 적고보안에도 무척이나 취약하다. 10g 부터는 dbms_crypto 가 새로 지원이 되면서 AES 와 같은 알고리즘도 지원이 되고lob data 도 지원하니 활용도가 무척 높아 졌다고 볼 수 있겠다. -- dbms_crypto 에 대한 실행 권한만 부여하면 권한은 끝!grant execute on DBMS_CRYPTO to sinu; -- package 껍데기CREATE OR REPLACE PACKAGE pkg_cryptoIS FUNCTION encrypt ( input_string IN VARCHAR2 , key_data IN VARCHAR2 := '12345678' ) RETURN RAW; FUNCTION decry..

DataBase/Oracle 2015.01.22

오라클 커서(Oracle cursor) 관련 내용

[오라클 커서 ] * 커서 : 'sql이 하나 실행될때 마다 커서가 하나 열린다.' * 커서가 열리면 반드시 닫아줘야 한다. * 간혹: 'ORA-01000 : 최대 열기 커서 수를 초과' 에러가 발생하는데 , 이는 커서를 열고 커서를 닫지 않아서 이다. > jdbc프로그램 하면서 Preparestatement , Result 이런것들을 close() 하지 않아서 발생 ( Connection을 닫지 않았을 때는 'ORA-00020: maximum number of processes (100)' 와 같은 프로세스 수 에러가 발행한다.) > 또, 루프안에서 위 객체를 생성하였으면, 루프내에서 close해줘야 한다. 루프밖에서 한번 닫으면 안된다. ,예를 들어 루프안에서 10번 객체를 생성해 놓고, 루프밖에서 ..

DataBase/Oracle 2015.01.16

MS-SQL Try Catch

-------------------------------사용방법-------------------------------ex) 0나누기 오류 처리BEGIN TRY SELECT 1/0;END TRYBEGIN CATCH SELECT --오류번호 반환 ERROR_NUMBER() AS ErrorNumber, --심각도 반환 ERROR_SEVERITY() AS ErrorSeverity, --오류 상태번호 반환 ERROR_STATE() AS ErrorState, --오류가 발생한 저장 프로시저 또는 트리거의 이름 ERROR_PROCEDURE() AS ErrorProcedure, --오류가 발생한 루틴 내의 줄 번호 ERROR_LINE() AS ErrorLine, --오류 메시지의 전체 텍스트 ERROR_MESSAGE..

DataBase/SQL Server 2015.01.15

MS-SQL Table List 및 Column 정보 불러오기

--------------Table List 불러오기-------------- SELECT [NAME] AS [테이블명] FROM SYS.TABLES--------------Table 별 Column List 불러오기-------------- SELECT A.[NAME] AS [테이블명], B.[NAME] AS [컬럼명], UPPER(TYPE_NAME(B.USER_TYPE_ID)) AS [컬럼타입], CASE WHEN ( TYPE_NAME(USER_TYPE_ID) = 'VARCHAR' OR TYPE_NAME(USER_TYPE_ID) = 'NVARCHAR' OR TYPE_NAME(USER_TYPE_ID) ='CHAR' OR TYPE_NAME(USER_TYPE_ID) ='NCHAR' ) THEN CAST(M..

DataBase/SQL Server 2015.01.15
728x90
반응형