블로그 이미지
bedbmsguru

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
  • total
  • today
  • yesterday
2011. 3. 9. 16:38 SQL SERVER
CREATE IINDEX [INDEX_NAME] ON TABLE
(
    column,....
)
INCLUDE(column, ...)

-INCLUDE절에 지정된 non-key column을 noncluster index의 leaf레벨에 저장하여 covered index 수준의 성능을 낼 수 있도록 해준다.
-Where 절에 나오는 칼럼은 key-column으로 그냥 select list에만 나오는 칼럼은 non-key column으로 세팅한다.


0. include절에 나오는 칼럼은 update가 되더라도 index를 다시 정렬하지 않아도 되기때문에 DISK I/O를 줄일 수 있다.
1. Index의 크기가 900byte를 넘더라도 인덱스 생성이 가능하다.
2. 16개로 제한된 Index key column갯수의 제한을 받지 않는다.
3. non-key column 에는 text, ntext, and image 를 제외한 모든 데이타 타입이 가능하다.
posted by bedbmsguru
2011. 1. 31. 16:54 SQL SERVER
Select exec

프로시져 결과값을 select 해야할 경우에 사용할 것~

--테스트 테이블 생성
CREATE TABLE TEST1
(
  col1 int, 
  col2 varchar(500)
)

--데이타 입력
INSERT INTO TEST1 VALUES(1, 'AAA')
INSERT INTO TEST1 VALUES(2, 'BBB')
INSERT INTO TEST1 VALUES(3, 'CCC')
INSERT INTO TEST1 VALUES(4, 'DDD')
INSERT INTO TEST1 VALUES(5, 'EEE')

--테스트 프로시져 생성
CREATE PROCEDURE usp_test_proc
(
    @index As INT
)
AS
SELECT *
FROM TEST1
WHERE col1 > @index


방법1
--######### 임시 테이블을 생성해서 데이타를 넣은후 필터링 ###################
CREATE TABLE #TEMP
(
     col1 int, 
    col2 varchar(500)
 )

INSERT #TEMP EXEC usp_test_proc 3
SELECT * FROM #TEMP WHERE col2 = 'EEE'
DROP TABLE #TEMP

--#######방법2 OPENROWSET 함수를 이용한다.

--2005에서는 Ad Hoc Distributed Queries 옵션이 default로 꺼져 있으므로 켜줘야 한다.
--켜주지 않을 경우 아래와 같은 에러가 발생한다.
메시지 15281, 수준 16, 상태 1, 줄 1
구성 요소 'Ad Hoc Distributed Queries'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 문 'OpenRowset/OpenDatasource'에
대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 사용하여 'Ad Hoc Distributed Queries'의 사용을 활성화할 수 있습니다. 'Ad Hoc Distributed Queries'
활성화 방법은 SQL Server 온라인 설명서의 "노출 영역 구성"을 참조하십시오.

sp_configure 'show advanced options', 1;
reconfigure


sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;

sp_configure 'show advanced options', 0;
reconfigure
GO
---------------------------------------------------------------------

SELECT * FROM OPENROWSET('sqloledb', 'server=(local);trusted_connection=yes' ,'exec 디비이름.dbo.usp_test_proc 4')
posted by bedbmsguru
2010. 11. 3. 11:38 SQL SERVER

포트 지정을 , 로 할줄이야....-_-;;
아이피, Port\ Instanc이름
posted by bedbmsguru