출처: SQLER 김민석님 좋은 글이 있어서 슬그머니 스크랩합니다;; [2000 에서 확인 32bit without AWE]dbcc memorystatus Dynamic Memory Manager Buffers ------------------------------ ----------- QueryPlan 205678 205678 * 8KB = 1645424 KB (한강으로 GoGo~))[2005 에서 확인 32bit with AWE]AWE Allocated 5349376CACHESTORE_OBJCP (Total) KBSinglePage Allocator 31280CACHESTORE_SQLCP (Total) KBSinglePage Allocator 740208 (한강으로 GoGo~) [2008 에서 확인 ..
SQL
출처 : TAEYO.NET DECLARE @KEY VARCHAR SET @KEY = '' --DECLARE @KEY2 VARCHAR --SET @KEY2 = ' ' DECLARE @TABLE_INFO TABLE ( TABLE_NAME VARCHAR(250) , TABLE_COMMENT VARCHAR(1000) , IDX VARCHAR(50) , COLUMN_NAME VARCHAR(250) , COLUMN_COMMENT VARCHAR(1000) , LENGTH VARCHAR(50) , PK VARCHAR(10) , TYPE VARCHAR(50) , TYPE2 VARCHAR(100) , ISNULLABLE VARCHAR(10) ) DECLARE @COLUMN_INFO TABLE ( TABLE_NAME VAR..
기존 DB 에서 전화번호, 이메일 분리 010-1234-5678 >>> 010, 1234, 5678 test@aaa.com >>> test, aaa.com 어휴 눈아퍼 SELECT SUBSTRING(MOBILE, 0, CHARINDEX('-', MOBILE)) AS MOBILE_01 , SUBSTRING(SUBSTRING(MOBILE, CHARINDEX('-', MOBILE)+1, LEN(MOBILE)), 0, CHARINDEX('-', SUBSTRING(MOBILE, CHARINDEX('-', MOBILE)+1, LEN(MOBILE)))) AS MOBILE_02 , SUBSTRING(SUBSTRING(MOBILE, CHARINDEX('-', MOBILE)+1, LEN(MOBILE)), CHARINDEX..
출처: DBGuide 다음 쿼리를 응용하시면 사용하지 않는 인덱스를 쉽게 찾아 낼 수 있습니다. 아래 쿼리는 적어도 최근 15일간 사용이 없는 인덱스와 통계를 찾아내는 쿼리입니다. /* 테이블별 인덱스에 대한 통계가 마지막으로 업데이트된 날짜 찾기 이종희 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 INDEXPROPERT..
출처 : korea.internet.com 저자: Alexander Chigrik 다음에 소개할 14가지 팁들은 여러분이 Transact SQL문으로 쿼리를 작성할때 성능상의 이유로 꼭 지켰으면 하는 것들이다. where 절을 사용하여 쿼리의 결과셋을 제한한다. 이것은 성능에 가장 영향을 미치는 것으로 클라이언트에게 모든 결과가 아니라 꼭 필요한 결과만 반환하도록 한다. 이렇게하면 쓸모없는 네트웍 트래픽을 감소시킬 수 있으며 쿼리 성능도 향상된다. 테이블의 모든 컬럼이 아닌 필요한 컬럼의 레코드만 반환한다. 역시 성능에 영향을 미치며 클라이언트에게 필요한 컬럼의 데이터만 반환하여 쓸모없는 트래픽을 감소시키고 쿼리 성능을 향상시킨다. 뷰나 스토어드 프로시져를 사용한다. 긴 쿼리문을 네트웍으로 전송하는것에 ..
출처 : 부지런한(?) 개발자 1. 인덱스 - index seek : 인덱스를 타고 조회 - table scan : 인덱스 안타고, 전체 테이블 스캔 2. 클러스트된 인덱스 vs 클러스터안된 인덱스 클러스터 된 인덱스 - 차례 - 물리적인 순서로 데이타가 저장 - 테이블당 하나만 설정가능 - 속도 쵝오 - 유니크 인덱스로 설정 - 범위에 의한 쿼리에 적합 클러스터 되지 않은 인덱스 - 색인 - 테이블당 249개까지 설정 가능 - 작은 범위의 데이타에서 특정 데이터를 반환하는 쿼리에 적합 3. 단일 컬럼 인덱스 vs 복합 컬럼 인덱스 - 테이블의 검색시 두개의 필드를 사용하여 검색하는 경우, 주문테이블 검색시 고객, 제품이 두개의 컬럼을 이용하여 주문데이타가 조회가 가능하다면 고객, 제품 컬럼을 복합 컬럼..
SELECT [총 ] = count(age) , [10대] = count(case when age/10=1 then 1 end) , [20대] = count(case when age/10=2 then 1 end) , [30대] = count(case when age/10=3 then 1 end) , [40대] = count(case when age/10=4 then 1 end) , [50대] = count(case when age/10=5 then 1 end) , [60대] = count(case when age/10=6 then 1 end) , [70대] = count(case when age/10=7 then 1 end) , [80대] = count(case when age/10=8 then 1 en..
일자별로 집계가 필요한경우 DECLARE @조회시작일자 datetime , @조회종료일자 datetime SET @조회시작일자 = '2004-06-14' SET @조회종료일자 = '2004-06-18' SELECT isnull(count(case when substring(address,1,2) = '서울' then 1 end),0) as 서울 , isnull(count(case when substring(address,1,2) = '경기' then 1 end),0) as 경기 , isnull(count(case when substring(address,1,2) = '인천' then 1 end),0) as 인천 , isnull(count(case when substring(address,1,2) = '대..
SELECT CASE WHEN datepart(dw, 필드이름) = 1 THEN '일요일' WHEN datepart(dw, 필드이름) = 2 THEN '월요일' WHEN datepart(dw, 필드이름) = 3 THEN '화요일' WHEN datepart(dw, 필드이름) = 4 THEN '수요일' WHEN datepart(dw, 필드이름) = 5 THEN '목요일' WHEN datepart(dw, 필드이름) = 6 THEN '금요일' ELSE '토요일' END , count(*) FROM table_name GROUP BY datepart(dw, 필드이름) ORDER BY datepart(dw, 필드이름)