일or놀이/MS-SQL 26

분산쿼리(Openquery) 실사용 예

SQL SERVER에서 ORACLE 서버로 분산쿼리(Openquery)를 이용해서 데이터를 조회,수정,삭제 가능합니다. Openquery는 fourpartname을 사용하는것 보다 속도가 더 빠릅니다.Openquery 사용 예1.openquery 내의 조건절에 직접 cwsonic을 입력하면 OK-- 조회SELECT * FROM OPENQUERY(orainsa, 'select * from tgt_code where code_no=''cwsonic''') -- insert INSERT OPENQUERY (orainsa, 'select * from tgt_code where 1=0') VALUES ('wonsick','',' ','')-- deleteDELETE OPENQUERY(orainsa, 'select..

일or놀이/MS-SQL 2006.09.05

sp_addlinkedserver

EXEC sp_addlinkedserver @server='MemDB', -- 앞으로 사용할 링크드 서버이름입니다. @srvproduct = '', -- 공백처리 합니다. @provider = 'SQLOLEDB', -- SQL 서버이면 그대로 씁니다. @datasrc = '111.111.111.111', -- 아이피 적어 줍니다. @provstr='', -- 공백처리 합니다. @catalog='Member' -- 특정 카다로그 즉 데이터 베이스 이름을 적습니다. GO EXEC sp_addlinkedsrvlogin 'MemDB', 'false', NULL, 'MemID', 'MemPW' -- 로그인을 만듭니다. -- MemDB 라는 서버에 MemID 라는 유저아이디로 MemPW 의 암호를 갖는 -- 유저를..

일or놀이/MS-SQL 2006.09.05

사용하지 않는 인덱스 찾기

/* 테이블별 인덱스에 대한 통계가 마지막으로 업데이트된 날짜 찾기 이종희 2003.10. 정원혁 2004.8. */ SELECT USER_NAME( OBJECTPROPERTY( i.id, 'OwnerID' ) ) AS Owner ,OBJECT_NAME( i.id ) AS [Table] , i.name AS [Index] ,CASE INDEXPROPERTY( i.id , i.name , 'IsClustered') WHEN 1 THEN 'Y' ELSE '' END AS IsClustered ,CASE INDEXPROPERTY( i.id , i.name , 'IsUnique' ) WHEN 1 THEN 'Y' ELSE '' END AS IsUnique ,STATS_DATE( i.id , i.indid ) AS..

일or놀이/MS-SQL 2006.09.05

적절한 인라인 뷰 사용으로 인한 성능향상 사례

* 요점. 적절히 인라인 뷰를 사용하여 본래의 집합을 최소화 한 후 조인을 합니다. 대부분의 SQL 튜닝은 적절한 집합을 먼저 만드는 데에서 시작합니다. * 사례 SQL. 튜닝 전 SQL SELECT /*+ index(c EXT00002_I1) */ B.SALE_EMP_NO EMP_NO, MAX(F.EMP_NM||'('||F.EMP_NO||')') EMP_NM, B.PAY_MAN_NO, MAX(E.CUST_NM||'('||D.PAY_MAN_NO||')') PAY_MAN, B.UNIBUS_Svc_CD, MAX(C.CODE_NM) CODE_NM FROM (SELECT * FROM TBSLO_ISVCDM WHERE svc_stat_cd = '01') B, (SELECT * FROM EXT00002 WHERE ..

일or놀이/MS-SQL 2006.09.05

SELECT 문장의 실행 결과를 PDF 파일로

SELECT 문장의 실행 결과를 PDF 파일로 저장하는 스크립트가 있습니다. 오래전에 나온 것인데, 여기서 한번 소개하고자 합니다. SELECT 문장의 실행 결과를 PDF 파일로 출력할 경우는 그리 많아 보이지는 않지만, 혹시나 리포팅 결과를 다운로드 받을때 쓰일 수 있을 것 같네요..가장먼저 해 주어야할 일은 PDF 파일로 저장할 쿼리를 담고 있을 테이블을 만드는 것입니다. 아래 쿼리를 실행하면 됩니다.CREATE TABLE psopdf (code NVARCHAR(80)) 그리고 아래 주소에서 SQL2PDF 저장 프로시저 코드를 다운로드 받아서 그대로 실행시켜 줍니다.http://www.sqlservercentral.com/columnists/mivica/sql2pdf.txt이제 준비는 완료되었고, p..

일or놀이/MS-SQL 2006.09.05

분할된 뷰를 만들기 위한 조건

SQL Server 2000의 Developer 및 Enterprise Edition에서만 분할된 뷰에서 INSERT, UPDATE 및 DELETE 작업을 할 수 있습니다. 분할된 뷰를 수정하려면 명령문이 다음 조건에 맞아야 합니다. 원본 구성원 테이블에 이러한 열에 대한 DEFAULT 제약 조건이 있거나 NULL을 허용해도 INSERT 문은 뷰의 모든 열에 대해 값을 제공해야 합니다. DEFAULT 정의를 갖는 구성원 테이블 열에 대해서 명령문은 DEFAULT 키워드를 명시적으로 사용할 수 없습니다. 분할 열에 삽입되는 값은 반드시 원본이 되는 제약 조건 중 적어도 하나를 만족시켜야 합니다. 그렇지 않은 경우에는 제약 조건을 위반하게 되어 INSERT 작업이 실패합니다. UPDATE 문은 열이 해당 구..

일or놀이/MS-SQL 2006.09.05

VIEW 사용 예제

WITH CHECK OPTION 사용 다음은 캘리포니아 주의 작가에 대해 데이터 수정을 허용하는 CAonly라는 뷰를 표시하는 예제입니다.USE pubs IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'CAonly') DROP VIEW CAonly GO CREATE VIEW CAonly AS SELECT au_lname, au_fname, city, state FROM authors WHERE state = 'CA' WITH CHECK OPTION GO 뷰에서 기본 제공 함수 사용다음은 기본 제공 함수를 포함하는 뷰 정의를 보여 주는 예제입니다. 함수를 사용할 때 파생된 열은 반드시 CREATE VIEW 문 내의..

일or놀이/MS-SQL 2006.09.05

인덱스를 사용하지 않는 경우

인덱스를 사용하지 않는 경우인덱스 컬럼은 비교되기 전에 변형이 일어나면 인덱스를 사용할수 없다. 그러나 인덱스 컬럼을 변형시키지 않고서도 비교되는 상태 컬럼(혹은 상수)의 변형을 통해 거의 모든 경우를 표현해 낼 수 있다. 인덱스 컬럼의 변형은 사용자의 코딩에 의해서 뿐만 아니라 내부적으로 DBMS가 스스로 변형을 일으킬 수도 있다. 이러한 성질을 역이용하여 고의적인 변형(Suppressing)을 통해 원하는 액세스 경로로 유도하기도 한다. 부정형(Not, ) 으로 조건을 기술한 경우에도 인덱스를 사용하지 않는다. 인덱스 컬럼은 비교되는 상수값과 B*TREE 방식으로 스트링을 비교하여 찾는것이므로 주어진 값이 아닌 값을 찾는 부정형 조건에는 직접 비교해야 할 값이 존재하지 않으므로 논리적으로 볼 때 이미..

일or놀이/MS-SQL 2006.08.28