블로그 이미지
010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (500)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2024.4
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

공지사항

최근에 올라온 글


http://blogs.msdn.com/b/sql_pfe_blog/archive/2009/12/23/how-and-why-to-enable-instant-file-initialization.aspx

에러로그 강제 출력 및 확인 여기서 MDF 관련 로그가 나오면 설정이 되지 않은 것이다.
sql 을 최소 권한으로 시작할때 해당 옵션을 추가하지 않는 경우가 많다.

DBCC TRACEON(3004,3605,-1)
GO
CREATE DATABASE TestFileZero
GO
EXEC sp_readerrorlog
GO
DROP DATABASE TestFileZero
GO
DBCC TRACEOFF(3004,3605,-1)

설정을 위해서 할 일들
lusrmgr.msc (사용자 및 그룹 사용자 보기)
SQL 사용자 그룹 등록

secpol.msc (로컬 보안 정책)

추가 시킬 group 등록

sql restart
완료

자세한 사항은 원본 블로그를 확인 하세요~


Posted by 보미아빠
, |
Posted by 보미아빠
, |

service master key

카테고리 없음 / 2010. 12. 31. 13:07

forfiles라는 프로그램은 알아서 찾아서 받으셔요..2003에 기본탑재 xp의경우 리소스킷입니다.

 

n  예전 마스터키 삭제

(XP_CMDSHELL 버전)

declare @BMK varchar(max)

set @BMK = replace(@@servername,'\','_')

exec ('master..xp_cmdshell ''C:\OK\FORFILES -pc:\DBA -m' + @BMK  + '*.key -c"CMD /C del @FILE"''')

<?xml:namespace prefix = o /> 

(CMDEXEC 버전) -- 이거이 더 간단

C:\DBA\forfiles -pC:\OK -m%COMPUTERNAME%*.key -c"CMD /C del @FILE"

 

n  서비스마스터키 백업 (인스턴스명때문에 이렇게 만든건데..필요없을라나)

declare @BMK varchar(max)

set @BMK = 'BACKUP SERVICE MASTER KEY TO FILE = ''C:\OK\' + replace(@@servername,'\','_') + '.service_master.key'' ENCRYPTION BY PASSWORD = ''picolo1*()'''

exec (@BMK)

Posted by 보미아빠
, |
Posted by 보미아빠
, |

readtrace

카테고리 없음 / 2010. 12. 27. 17:13
Posted by 보미아빠
, |
Posted by 보미아빠
, |
/*============================================================================
  File:     sp_helpindex2.sql

 Summary:  So, what are the included columns?!
This is a MODIFIED sp_helpindex script that includes INCLUDEd
columns AND filtered index columns.
  
  Date:     April 2008

  SQL Server *2008* Version: 10.00.1300.13 (SQL Server 2008 CTP6)
------------------------------------------------------------------------------
  Written by Kimberly L. Tripp, SYSolutions, Inc.

  For more scripts and sample code, check out 
    http://www.SQLskills.com

  This script is intended only as a supplement to demos and lectures
  given by SQLskills instructors.  
  
  THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF 
  ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED 
  TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  PARTICULAR PURPOSE.
============================================================================*/

USE master
go

create procedure sp_helpindex2
@objname nvarchar(776) -- the table to check for indexes
as

-- Updated in April 2008 by Kimberly L. Tripp, SQLskills.com
-- to add included columns AND filter_definition to the output. 
-- See Kimberly's blog for updates and/or additional information
-- http://www.SQLskills.com/blogs/Kimberly

-- PRELIM
set nocount on

declare @objid int, -- the object id of the table
@indid smallint, -- the index id of an index
@groupid int,   -- the filegroup id of an index
@indname sysname,
@groupname sysname,
@status int,
@keys nvarchar(2126), --Length (16*max_identifierLength)+(15*2)+(16*3)
@inc_columns nvarchar(max),
@inc_Count smallint,
@loop_inc_Count smallint,
@dbname sysname,
@ignore_dup_key bit,
@is_unique bit,
@is_hypothetical bit,
@is_primary_key bit,
@is_unique_key bit,
@auto_created bit,
@no_recompute bit,
@filter_definition nvarchar(max)

-- Check to see that the object names are local to the current database.
select @dbname = parsename(@objname,3)
if @dbname is null
select @dbname = db_name()
else if @dbname <> db_name()
begin
raiserror(15250,-1,-1)
return (1)
end

-- Check to see the the table exists and initialize @objid.
select @objid = object_id(@objname)
if @objid is NULL
begin
raiserror(15009,-1,-1,@objname,@dbname)
return (1)
end

-- OPEN CURSOR OVER INDEXES (skip stats: bug shiloh_51196)
declare ms_crs_ind cursor local static for
select i.index_id, i.data_space_id, i.name,
i.ignore_dup_key, i.is_unique, i.is_hypothetical, i.is_primary_key, i.is_unique_constraint,
s.auto_created, s.no_recompute, i.filter_definition
from sys.indexes i join sys.stats s
on i.object_id = s.object_id and i.index_id = s.stats_id
where i.object_id = @objid
open ms_crs_ind
fetch ms_crs_ind into @indid, @groupid, @indname, @ignore_dup_key, @is_unique, @is_hypothetical,
@is_primary_key, @is_unique_key, @auto_created, @no_recompute, @filter_definition

-- IF NO INDEX, QUIT
if @@fetch_status < 0
begin
deallocate ms_crs_ind
raiserror(15472,-1,-1,@objname) -- Object does not have any indexes.
return (0)
end

-- create temp tables
CREATE TABLE #spindtab
(
index_name sysname collate database_default NOT NULL,
index_id int,
ignore_dup_key bit,
is_unique bit,
is_hypothetical bit,
is_primary_key bit,
is_unique_key bit,
auto_created bit,
no_recompute bit,
groupname sysname collate database_default NULL,
index_keys nvarchar(2126) collate database_default NOT NULL, -- see @keys above for length descr
filter_definition nvarchar(max),
inc_Count smallint,
inc_columns nvarchar(max)
)

CREATE TABLE #IncludedColumns
( RowNumber smallint,
[Name] nvarchar(128)
)

-- Now check out each index, figure out its type and keys and
-- save the info in a temporary table that we'll print out at the end.
while @@fetch_status >= 0
begin
-- First we'll figure out what the keys are.
declare @i int, @thiskey nvarchar(131) -- 128+3

select @keys = index_col(@objname, @indid, 1), @i = 2
if (indexkey_property(@objid, @indid, 1, 'isdescending') = 1)
select @keys = @keys  + '(-)'

select @thiskey = index_col(@objname, @indid, @i)
if ((@thiskey is not null) and (indexkey_property(@objid, @indid, @i, 'isdescending') = 1))
select @thiskey = @thiskey + '(-)'

while (@thiskey is not null )
begin
select @keys = @keys + ', ' + @thiskey, @i = @i + 1
select @thiskey = index_col(@objname, @indid, @i)
if ((@thiskey is not null) and (indexkey_property(@objid, @indid, @i, 'isdescending') = 1))
select @thiskey = @thiskey + '(-)'
end

-- Second, we'll figure out what the included columns are.
SELECT @inc_Count = count(*)
FROM
sys.tables AS tbl
INNER JOIN sys.indexes AS si 
ON (si.index_id > 0 
and si.is_hypothetical = 0) 
AND (si.object_id=tbl.object_id)
INNER JOIN sys.index_columns AS ic 
ON (ic.column_id > 0 
and (ic.key_ordinal > 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0)) 
AND (ic.index_id=CAST(si.index_id AS int) AND ic.object_id=si.object_id)
INNER JOIN sys.columns AS clmns 
ON clmns.object_id = ic.object_id 
and clmns.column_id = ic.column_id
WHERE ic.is_included_column = 1 and
(si.index_id = @indid) and 
(tbl.object_id= @objid)

IF @inc_Count > 0
INSERT #IncludedColumns
SELECT ROW_NUMBER() OVER (ORDER BY clmns.column_id) 
, clmns.name 
FROM
sys.tables AS tbl
INNER JOIN sys.indexes AS si 
ON (si.index_id > 0 
and si.is_hypothetical = 0) 
AND (si.object_id=tbl.object_id)
INNER JOIN sys.index_columns AS ic 
ON (ic.column_id > 0 
and (ic.key_ordinal > 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0)) 
AND (ic.index_id=CAST(si.index_id AS int) AND ic.object_id=si.object_id)
INNER JOIN sys.columns AS clmns 
ON clmns.object_id = ic.object_id 
and clmns.column_id = ic.column_id
WHERE ic.is_included_column = 1 and
(si.index_id = @indid) and 
(tbl.object_id= @objid)
SELECT @inc_columns = [Name] FROM #IncludedColumns WHERE RowNumber = 1

SET @loop_inc_Count = 1

WHILE @loop_inc_Count < @inc_Count
BEGIN
SELECT @inc_columns = @inc_columns + ', ' + [Name] 
FROM #IncludedColumns WHERE RowNumber = @loop_inc_Count + 1
SET @loop_inc_Count = @loop_inc_Count + 1
END
select @groupname = null
select @groupname = name from sys.data_spaces where data_space_id = @groupid

-- INSERT ROW FOR INDEX
insert into #spindtab values (@indname, @indid, @ignore_dup_key, @is_unique, @is_hypothetical,
@is_primary_key, @is_unique_key, @auto_created, @no_recompute, @groupname, @keys, @filter_definition, @inc_Count, @inc_columns)

-- Next index
fetch ms_crs_ind into @indid, @groupid, @indname, @ignore_dup_key, @is_unique, @is_hypothetical,
@is_primary_key, @is_unique_key, @auto_created, @no_recompute, @filter_definition
end
deallocate ms_crs_ind

-- DISPLAY THE RESULTS
select
'index_name' = index_name,
'index_description' = convert(varchar(210), --bits 16 off, 1, 2, 16777216 on, located on group
case when index_id = 1 then 'clustered' else 'nonclustered' end
+ case when ignore_dup_key <>0 then ', ignore duplicate keys' else '' end
+ case when is_unique <>0 then ', unique' else '' end
+ case when is_hypothetical <>0 then ', hypothetical' else '' end
+ case when is_primary_key <>0 then ', primary key' else '' end
+ case when is_unique_key <>0 then ', unique key' else '' end
+ case when auto_created <>0 then ', auto create' else '' end
+ case when no_recompute <>0 then ', stats no recompute' else '' end
+ ' located on ' + groupname),
'index_keys' = index_keys,
--'num_included_columns' = inc_Count,
'included_columns' = inc_columns,
'filter_definition' = filter_definition
from #spindtab
order by index_name

return (0) -- sp_helpindexwinc2
go

exec sys.sp_MS_marksystemobject 'sp_helpindex2'
Posted by 보미아빠
, |

메뉴얼을 필독하지않고 윈도우 2008을 처음 설치하시는 분은  위의 부분에서 다음으로 진행이 안됩니다.
결과론적으로 윈2008은 사용자 계정의 보안이 강화되었습니다.
 
처음설치시 암호의복잡성이 활성되어 있으므로 영문,숫자,특수문자포함 6자(포함) 이상으로 설정해야 부팅가능합니다.(차후에  보안옵션에서 암호입력없이 바로 부팅진행 수정가능 )
 
다음 네 가지 범주 중 세 가지의 문자를 포함해야 하는데,,,,,,
-  길이가 최소한 6자 이상이어야 함
-  다음 네 가지 범주 중 세 가지의 문자를 포함해야 함
-  영문 대문자(A - Z)
-  영문 소문자(a - z)
-  기본 10개 숫자(0 - 9)
-  알파벳 이외의 문자(예: !, $, #, %)
 
* 암호 복잡성 만족 조건: 사용자 암호: 대소문자,숫자의 조합으로 총 6글짜(포함)이상 입력(Cape Lock 켜져있는 상태는 영문 소문자)
* 기본 자판은 영문대문자인데 Cape Lock 켜져있는 상태는 영문 소문자로 변경됩니다.
* 사용자의 계정 이름이나 연속되는 문자 2개를 초과하는 사용자 전체 이름의 일부를 포함하지 않음
* 기호의 경우 제한이 있기때문에 보통은 @ 로 씁니다.
 
팁: 패스워드 입력시 아래와 같은 메세지가 뜨는 경우가 있는데, 계정정책에 의한 패스워드 복잡도및 길이를 만족시키지 못했을 경우입니다.
 
Unable to update the password. The value provided for the new password does not meet the length, complexity or history requirements of the domain.
 
암호 재설정 디스크작성을 위한 usb 드라이버 준비: 1.50KB로 userkey이름으로 저장됩니다.(암호는 절대 잊어버리지 마세요.)
 
@ 암호 복잡성 만족(암호 설정시 영문+숫자+ 기호 혼합사용): 해제
1. 로컬 그룹 정책 편집기를 엽니다. (제어판-> 관리도구 or Win키+R->gpedit.msc 입력 후 엔터
2. 로컬 컴퓨터 정책 -> 컴퓨터 구성 -> Windows 설정 -> 보안설정 -> 계정 정책 -> 보안 정책
3. 암호는 복잡성을 만족해야 함 -> 해제. (해당 항목 더블클릭 후 사용안함 으로 설정)
 
@ 대화형 로그온(Ctrl + Alt + Del) 사용없이 서버 로그온
가) 시작 - 실행: gpedit.msc 입력후 엔터
나) 로컬 컴퓨터 정책 - 컴퓨터 구성- 윈도우 설정- 보안설정-로컬정책- 보안옵션
다) 대화형 로그온: ctrl + alt + del을 사용할 필요없음 - 사용으로 변경
라) 시작 - 실행  - CONTROL USERPASSWORDS2 - 확인 - 사용자 계정 - 사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음 - 체크해제 - 확인 - 새로운 창이 열리면 여기에 설치시 입력하셨던 암호를 입력 - 확인
 
@ 자동 로그인 설정
[시작] - [실행]을 눌러 [control userpasswords2]를 입력하고 실행
[사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음]에 체크를 해제하고 [확인] 버튼을 클릭한다.본인이 사용할 계정과 비밀번호를 넣고 완료합니다.
 
@ 암호 항시 사용 해제
시작 - 실행창의 'netplwiz' 입력하신 다음 체크 풀어주시면 됩니다.
이와함께 '암호 교체 주기 0일로 변경 (OFF)'로 설정하세요..
 
- - 위의 설정들은 첫 로그인후에 바로 적용해줘야 하는 부분입니다. - -
 
@ 로그온시 Ctrl + Alt + Delete 사용하지 않음(Ctrl Alt Delete 사용안함.reg)
그룹정책 편집기에서 설정 가능한데.첨부된 레지스트리를 적용하시면 바로..설정이 완료됩니다.

@ Internet Explorer 보안설정
가) 시작 - 실행 - CompMgmtLauncher - 서버 관리자 실행(작업표시줄 - 빠른 실행 - 서버관리자 클릭하셔도 됩니다.)
나) 서버 요약 - 보안 정보 - IE ESC  구성(보안강화구성)
다) 관리자/사용자 - > 모두 사용안함으로 수정
 
@ 무선 인터넷(무선 랜) 사용(제가 무선 인터넷을 사용해서 정리한 부분입니다.)
가) 시작 - 실행 - CompMgtLauncher -  서버관리자 실행( 작업표시줄 - 빠른 실행 - 서버관리자 클릭하셔도 됩니다.)
나: 기능 요약 - 기능 추가 - 무선 LAN 서비스 선책 - 다음으로 기능추가설치 진행
다: 시작 - 실행 - Services.msc 입력후 엔터 - 서비스 실행 - 목록에 없었던 WLAN AutoConfig 서비스 생성확인 -> WLAN AutoConfig  서비스 -> 시작으로 수정(서비스 유형: 자동)

@ 테마 및 에어로(Aero 기능) 활성화
에어로 테마를 활성화 시키기 위해서는 서버관리자에서 구성요소와 관리항목인 Desktop Experience 항목과 Quality Windows Audio Video Experience 항목을 체크하면 되는데 잉크 서포트 부분은 자동으로 체크가 됩니다. (확인 누르면 2번의 재부팅 과정에 걸쳐 구성요소 설치가 완료됩니다.)
당연히 서비스 항목에서 테마 부분을 활성화 시켜야 합니다.
 
가) 시작 -> 실행 -> services.msc -> 서비스 실행
나) Themes 더블클릭 -> 시작으로 수정(시작유형: 자동) -> 시스템 재부팅 필요
다) 시작 -> 실행 -> CompMgmtLauncher -> 서버 관리자실행(혹은 작업표시줄-빠른 실행 - 서버관리자클릭)
라) 기능요약 - 기능 추가 - "Quality Windows Audio Experience" / "데스크톱 경험" 체크 설치후 재부팅
마) 바탕화면 -> 마우스 우측버턴 클릭 -> 개인 설정 -> 테마
바) Windows Vista 선택 또는 찾아보기 클릭후 -> c:windows\resources\themesAero.themes 선택
사) 내 컴퓨터 아이콘 -> 마우스 우측 클릭 -> 속성 -> 고급 시스템 설정 -> 고급 -> 성능 -> 설정 ->
시작효과 -> 내 컴퓨터에 가장 좋은 설정을 자동으로 선택 -> 적용 -> 확인
 
@ 종료시 이벤트 추적기 사용하지 않음(종료이벤트추적기사용안함.reg)
가) [시작] - [실행]을 눌러 [gpedit.msc]를 입력하고 실행한다.
나)  [컴퓨터 구성] - [관리 템플릿] - [시스템]으로 순서대로 이동을 한다.
다) 오른쪽에 시스템 종료 이벤트 추적기 표시를 더블클릭한다.창이 뜨면 [사용 안 함]으로 변경한다.
 
@ DEP 설정 약하게
DEP 때문에 실행되지 않는 프로그램들이 있는데,,시스템 등록정보 고급설정 들어가셔서 (귀찮으시면 SystemPropertiesAdvanced 입력) 적용해주세요.(재부팅해야 당연히 적용됩니다.)

@  사운드 활성화
가) 시작 - 실행 - Services.msc -> 서비스 실행
나) Windows Audio 더블클릭 -> 시작으로 수정(시작유형: 자동)
다: 제어판 -> 소리 -> 필요한 옵션 설정

@ 바탕화면에 깔끔한 IE 아이콘 등록(ie.reg 참조)
첨부파일 실행 병합 후 바탕화면에서 마우스 우클릭 -> 부메뉴에서 새로 고침(E) 클릭.

@ 종료속도 빠르게 하기(첨부레지참조)
가) 시작 - > 실행 ->  gpedit.msc -> 그룹정책개체편집기 -> 컴퓨터 구성 -> 관리템플릿 -> 시스템 ->
사용자 프로필 -> 프로필 언로드 및 업데이트의 재시도 최대 횟수를 더블클릭 -> 사용을 선택후
재시도횟수를 0으로 수정

@ 오류보고끄기
제어판 - 시스템 - 고급 - 오류보고 - 오류보고 사용안함

@ 자동 시스템 재부팅 비활성화
제어판 -> 시스템 -> 고급 -> 시작 및 복구 -> 설정 -> 시스템 오류 항목을 자동으로 다시 시작을 체크해제

@ 인터넷 보안 강화 구성 사용 하지 않기
기본적으로 인터넷 보안 강화 구성이 사용으로 설정되어 있는데.이 설정으로 인해서 사이트를 이동 할 때 마다 사이트 등록을 해줘야 할 뿐 아니라 많이 사용하는 플래시나 ActiveX를  사용할 수 없습니다.그래서 이 부분은 비활성화시켜주는 것이 좋습니다.
가) 관리 도구에 보면 서버 관리자가 있습니다. 서버관리자를 실행 시키면 초기 화면에서 [서버요약 - 보안정보]의 오른쪽에  보면 아래 이미지처럼 있습니다. 여기서 [IE ESC 구성]을 클릭합니다.
나) 관리자와 사용자를 모두 [사용 안 함]으로 변경하고 [확인] 버튼을 클릭하면 설정이 끝납니다.
 
@ 로그인시 [Ctrl + Alt + Del] 누르지 않기
가) [시작] - [실행]을 눌러 [gpedit.msc]를 입력하고 실행한다.
나) [컴퓨터 구성] - [Windows 설정] - [보안 설정] - [로컬 정책] - [보안 옵션]으로 순서대로 이동을 한다.
오른쪽에 대화형 로그인 : [Ctrl+Alt+Del]을 사용할 필요 없음을 더블클릭한다.창이 뜨면 [사용]으로 변경한다.
 
@ 종료시 이벤트 추적기 사용하지 않기
가) [시작] - [실행]을 눌러 [gpedit.msc]를 입력하고 실행한다.
나) [컴퓨터 구성] - [관리 템플릿] - [시스템]으로 순서대로 이동을 한다.
다) 오른쪽에 시스템 종료 이벤트 추적기 표시를 더블클릭한다. 창이 뜨면 [사용 안 함]으로 변경한다.
 
@ 자동 로그인 설정
가) [시작] - [실행]을 눌러 [control userpasswords2]를 입력하고 실행한다.
나) [사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음]에 체크를 해제하고 [확인] 버튼을 클릭한다.본인이 사용할 계정과 비밀번호를 넣고 완료한다.

@ 원격 데스크탑 포트 변경하기
기본적인 포트로 사용을 하면 보안상 좋지 않기 때문에 원격 데스크탑용 포트를 변경해서 사용하세요.
가) [시작]에서 [실행]을 누른 후 [regedit]를 입력하여 레지스트리 편집기를 실행 시킵니다.
나: 그런후 아래의 키로 이동을 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
 
이동을 했으면 오른쪽에 보면 많은 데이터가 있습니다. 그 중에서 [PortNumber]를 찾아서 더블 클릭하면 아래와 같은 창이 뜹니다. 단위에서 10진수로 변경하고 값 데이터를 원하는 포트로 변경을 하면 됩니다.
 
다) Windows 방화벽을 사용중이라면 변경한 포트를 방화벽에 예외추가를 해줘야 당연히 사용가능합니다.  [제어판] - [Windows 방확벽]으로 이동을 합니다. 윈2008은 [Windows 방확벽 설정 또는 해제]를 누릅니다. Windows 방화벽 설정 창이 뜨면 [예외] 탭으로 이동을 하고 [포트 추가]를 눌러 이름은 원하는 이름으로,  포트는 위에서 변경한 번트번호를 입력하고, 프로토콜은 TCP를 선택하고 [확인] 버튼을 눌러 설정을 완료합니다.
 
Windows 방화벽 추천옵션: 끄기
 
@ Windows Update(고급옵션보기 클릭):업데이트를 확인하지 않음 체크
 
@ 자동실행: 모든 미디어 및 장치에 자동실행 사용 체크 해제
 
@ 입력 도구 모음 숨기기
가) [제어판] - [국가 및 언어 옵션]을 선택
나) 4개의 탭중 3번째 [키보드 및 언어]로 이동 후 [키보드 변경...] 버튼을 클릭
다) [텍스트 서비스 및 입력 언어]라는 창이 뜨고 3개의 탭에서...
라) 2번재 탭인 [입력 도구 모음] 이동 하여 아래 이미지와 같이 숨김으로 변경

@  화면보호기 - 다시 시작할때 로그온 화면표시 해제
 
@ 시각효과 세부설정
제어판 -> 시스템 -> 고급 -> 성능 -> 설정 -> 성능옵션 - 시각효과 -> 최적 성능으로 조정을 선택
 
@ 메뉴 팝업속도 향상하기
HKEY_CURRENT_USER\ControlPaneldesktop - MenuShowDelay -> 0으로 수정
 
@ 폴더창 팝업속도 향상
HKEY_CURRENT_USER/Control Panel/desktop/windowmetrics 새로만들기(문자열 값)
MinAnimate -- > 0으로 수정
 
@ 종료 빠르게하기
HKEY_CURRENT_USER\SYTEM\CurrentControlSet\Control\WaitTokillServiceTimeout: 2000 에서 --> 1000 으로 수정
 
@ 무응답 응용프로그램 타임아웃 시간줄이기
HKEY_CURRENT_USER/Control Panel/desktop 에서 HungAppTimeout 값 5000(5초)
--- > 500초(1000 = 1초)로 수정

서버사용용도이기 때문에 성능을 위해서 64비트용으로 설치하는 것이 좋습니다.(CPU가 지원해야함).
이번에 나올 2008 R2는 32비트용이 없고..64비트용 전용으로 나옵니다.
Posted by 보미아빠
, |


DECLARE @TBL TABLE
(
 M01  VARCHAR(50)
,M02  VARCHAR(50)
,M03  VARCHAR(50)
 )
INSERT @TBL
SELECT '홍길동','',''
UNION
SELECT '이순신','',''
UNION
SELECT '','이순욱',''
UNION
SELECT '','장길자',''
UNION
SELECT '','오마니',''
UNION
SELECT '','마징가',''
UNION
SELECT '','','싱싱이'


SELECT MAX(M01) M01, MAX(M02) M02, MAX(M03) M03
  FROM (SELECT
      CASE WHEN CASE WHEN M01 = '' THEN 0 ELSE 1 END = 1 THEN ROW_NUMBER() OVER (PARTITION BY CASE WHEN M01 = '' THEN 0 ELSE 1 END ORDER BY (SELECT 1)) ELSE 0 END
    + CASE WHEN CASE WHEN M02 = '' THEN 0 ELSE 1 END = 1 THEN ROW_NUMBER() OVER (PARTITION BY CASE WHEN M02 = '' THEN 0 ELSE 1 END ORDER BY (SELECT 1)) ELSE 0 END
    + CASE WHEN CASE WHEN M03 = '' THEN 0 ELSE 1 END = 1 THEN ROW_NUMBER() OVER (PARTITION BY CASE WHEN M03 = '' THEN 0 ELSE 1 END ORDER BY (SELECT 1)) ELSE 0 END G
    , *
    FROM @TBL) A
 GROUP BY G

Posted by 보미아빠
, |

varchar(max) 주의사항

밥벌이 / 2010. 11. 26. 11:03


use t
go

if object_id ('tblx') is not null
drop table tblx
go

create table tblx
(idx int identity(1,1)
,a int
)
go


declare @a varchar(max)
set @a =''


-- 문제없음
set @a =
  '--' + replicate ('a', 7000)
+ char(10) + char(13)
+ 'insert into tblx (a) select 1'
exec (@a)


-- 에러 222222 를 넣었는데 22 만 들어감
set @a =
  '--' + replicate ('a', 7966)
+ char(10) + char(13)
+ 'insert into tblx (a) select 222222'
print @a
exec (@a)


-- 조용히 데이터 안들어감 
set @a =
  '--' + replicate ('a', 8000)
+ char(10) + char(13)
+ 'insert into tblx (a) select 3'
exec (@a)
go


-- 문제의 해결
set @a = 
convert(varchar(max), '')
+ '--' + replicate ('a', 8000)
+ char(10) + char(13)
+ 'insert into tblx (a) select 3'
exec (@a)
go


select * from tblx






유사한 오류는 다음과 같은것이 있습니다.

실제 오류는 아니지만 다음과 같은 계산이 안된다.

select power(2,31)-1
메시지 232, 수준 16, 상태 3, 줄 1
int 유형에 산술 오버플로 오류가 발생했습니다. 값 = 2147483648.000000

declare @a int, @b int, @c bigint
select @a = 2147483647, @b = 2147483647

set @c = @a + @b
select @c
메시지 8115, 수준 16, 상태 2, 줄 4
expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다.

--------------------
NULL

(1개 행이 영향을 받음)


'밥벌이' 카테고리의 다른 글

OPTIMIZE FOR ( @variable_name { UNKNOWN | = literal_constant } [ , ...n ] )  (0) 2010.11.19
민석이의 waitstat 모니터링  (0) 2010.11.18
부하 데이터생성  (0) 2010.11.18
Array Insert  (1) 2010.11.17
이 쿼리의 결과는 뭘까요?  (6) 2010.11.04
Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함