티스토리

저장소
검색하기

블로그 홈

저장소

innoblog.tistory.com/m

이노(inno) 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • MSSQL DBA GUIDE - 프로필러 [따라하기] 1. 다음 방법 중 하나를 이용하여 프로필러를 실행합니다. [시작] → [프로그램] → [Microsoft SQL Server] → [프로필러] 또는 엔터프라이즈 관리자의 상단 메뉴에서 [도구] → [SQL 프로필러]를 선택합니다. 2. [파일] → [새로 만들기] → [추적]을 선택합니다. 3. 원하는 SQL 서버에 연결하면, [추적 속성]창이 나타납니다. 4. 추적이름을 입력합니다. 5. 추적할 SQL Server를 선택합니다. 6. 템플릿을 사용할 경우에 템플릿 이름을 선택합니다. 7. 파일에 저장하려면, [파일에 저장]을 선택하고, 저장할 위치와 파일명을 입력합니다. 8. 최대 파일 크기 설정을 합니다. 9. [이벤트] 탭을 선택한 후, 원하는 이벤트를 추가하거나, 제거합니다. 10... 공감수 0 댓글수 0 2014. 3. 18.
  • 특정 조건의 SP 찾는 쿼리 레가시 테이블과 자료형 등이 틀리다거나 해서 특정 조건의 테이블에 종속된 SP(저장 프로시져)들을 찾아서 수정할 목적으로 만듬. select distinct object_name(sd.id) from sysdepends as sd inner join syscolumns as sc on sd.depid = sc.id inner join sysobjects as so on sd.id = so.id inner join systypes as st on sc.xtype = st.xtype where sc.name = 'vcname' and st.name = 'varchar' and sc.length = 10 and so.xtype = 'P' order by object_name(sd.id) asc 이제부터 설명... 공감수 0 댓글수 0 2014. 3. 17.
  • 동적조회조건에서의 정적프로시저와 동적프로시져 조회조건이 유동적인 프로시저호출 --정적 쿼리를 사용하는 프로시저에서 1. IF, OR과 case를 피하라 -부하가 많이 걸리는 예 ( case @OrderID when '%' then @OrderID else OrderID end ) = @OrderID (OrderID = @orderid OR @orderid IS NULL) -권장되는예(NULL이 없어야함) od.ProductID = coalesce(@prodid, od.ProductID) 2. coalesce 사용 -NULL이 존재하는 경우의 검색방법 1)컬림이 int형일 경우 DECLARE @minint int, @maxint int SELECT @minint = convert(int, 0x80000000), @maxint = convert(int.. 공감수 0 댓글수 0 2014. 3. 16.
  • SQL Server 2005 실행된 적 없는 프로시져 찾기 DB 개발을 하다보면 수많은 프로시져가 생성되기 마련인데 그중 상당수는 그 특정 용도로 사용 후 더이상 사용하지 않지만 삭제되지 않고 남아있는 프로시져들 일 것이다. 특히 잘 관리되지 않는 사이트라면 이런 프로시져들이 더 많을텐데 딱히 문서화가 되어있거나 하지 않은 경우 골라서 삭제하기가 힘든게 사실이다. 따라서 SQL 2005의 DMV와 시스템 뷰를 바탕으로 사용하지 않는 프로시져를 찾아보려고 한다. 일단 생성된 프로시져는 SQL Server 시작 후 최초 실행될 때 실행계획이 캐쉬에 저장된 후 재사용된다. 따라서 캐쉬에 실행계획이 없는 프로시져는 SQL Server가 (재)시작 후 한번도 실행되지 않았다고 가정할 수 있다. 위의 가정을 바탕으로 실행계획이 생성되지 않은 프로시져들을 찾는 쿼리는 아래와.. 공감수 0 댓글수 0 2014. 3. 15.
  • SQL Server 2K Job Schedule 문서화 스크립트 set nocount on go DECLARE job_cursor CURSOR FOR SELECT job_id FROM sysjobs ORDER BY [name] asc OPEN job_cursor DECLARE @job_id uniqueidentifier create table #tmp (iSeq int identity(1,1) not null, tmp text not null) declare @job varchar(8000) set @job = '' FETCH NEXT FROM job_cursor INTO @job_id WHILE @@FETCH_STATUS = 0 BEGIN select @job = @job + '===' + name + '===' + ' ' + CASE enabled WHEN 0 T.. 공감수 0 댓글수 0 2014. 3. 14.
  • 자동 증가 번호를 1부터 시작하도록 하는 명령어 자동 번호 증가를 했을 때 자동 증가 번호를 1부터 다시 시작하도록 하는 명령어임 DBCC CHECKIDENT(테이블명, RESEED, 0) 공감수 0 댓글수 0 2014. 3. 12.
  • [MSSQL-DMV] 각 테이블에 할당된 공간과 실제 데이터와 인덱스가 차지하고 있는 공간 확인 [MSSQL-DMV] 각 테이블에 할당된 공간과 실제 데이터와 인덱스가 차지하고 있는 공간 확인 select object_name(max(object_id)) [Object Name] , sum(used_page_count) * 8 as 'Total Used(KB)' , sum(reserved_page_count) * 8 as 'Total Reserved(KB)' , sum(case when index_id = 0 then used_page_count else 0 end) * 8 as 'Heap(KB)' , sum(case when index_id = 1 then used_page_count else 0 end) * 8 as 'Cluster(KB)' , sum(case when index_id < 2 t.. 공감수 0 댓글수 0 2014. 2. 22.
  • DataBase 정보쿼리 DB 목록 보기 --목록중에 시스템 데이터베이스는 제외시키기 --2000에서는 sysdatabases 2005에서는 sys.database 2005에서 sysdatabases 도 사용되지만 sysdatabases는 --단지 이전 버전과 호완을 위해 만들어 놓은 뷰라는것을 명심하자. Select [name] -- SQL Server 인스턴스내에 고유한 데이터베이스 이름 , [database_id] -- 데이터베이스 ID , [collation_name] -- 데이터가 정렬될 문자셋(예: Korean_Wansung_CI_AS 또는 Latin1_General_CI_AS_KS_WS 등등) , [user_access_desc] -- 사용자 액세스 설정 (예: MULTI_USER, SINGLE_USER 등등) , .. 공감수 0 댓글수 0 2014. 2. 3.
  • MS-SQL Database File 용량 저장하기 MS-SQL Database File 용량 저장하기 - 2005버전 by. 건방진연이 10/07 19:19 글보기| 댓글쓰기 일전에 database disk사용량을 보고 싶어서 만들었던 Transact-SQL이 있지만, mdf file 하고 ldf file하고 나누어서 table에 저장을 하여 보았기 때문에 display상 살짝 마음에 안드는 부분도 있고 , 다시 한번 정리하자는 의미에서 새로 만들어 보았다. 이번 버전은 tbl_db_diskSize라는 table에 mdf 와 ldf 파일을 저장하기 때문에 기본 버전보다 보기가 훨씬 좋다. 물론 filegroup 또한, 나누어서 저장하였기 때문에 따로 보지 않아도 된다. 이번 버전은 MS-SQL 버전이며 MS-SQL 2000에서는 Error를 발생하며, .. 공감수 0 댓글수 0 2014. 2. 3.
  • MSSQL 10진수를 16진수로 변환하기 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].DecToHex') and OBJECTPROPERTY(id, N'IsScalarFunction') = 1) drop function [dbo].DecToHex GO SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO /*------------------------------------------------------------------------- DecToHex 목 적 : 10진수를 16진수 Hex 스트링으로 벼환 EX) declare @result_val varchar (1000) set @result_val = dbo.DecToHex (256*2.. 공감수 2 댓글수 0 2013. 12. 24.
  • SQL 서버 2005 암호화 방식 SQL 서버 2005 암호화 방식 - 내장된 암호화 함수가 제공되고 이 함수 (MD2,MD4,MD5SHA,SHA1) 지원 (단방향 해시) DECLARE @Ciphertext varbinary(20); DECLARE @Plaintext varchar(20); SET @Plaintext = 'Hello' set @Ciphertext = HashBytes('SHA1',@Plaintext) SELECT [원문] = @Plaintext , [암호문] = @ciphertext - ENCRYPTBYPASSPHRASE 패스워드를 가지고서 키를 암호화 하는 방식 DECLARE @CreditCardNo varchar(20); SET @Creditcardno = '1234567890' DECLARE @PASS nvarcha.. 공감수 0 댓글수 0 2013. 11. 30.
  • 특정 테이블의 컬럼 정보를 보여주는 시스템 SP 특정 테이블의 컬럼 정보를 보여주는 시스템 SP 내직업:DBA 2006/08/02 11:30 http://blog.naver.com/resetman71/130007057924 SQL 2000 DB Help 에서도 알려주지 않는 간단한 팁 특정 테이블의 컬럼정보를 알려주는 시스템 SP 입니다. 특정 테이블이 있는 DB로 접근한 다음 아래의 쿼리를 돌리면 됩니다. 예: use testDB exec sp_MShelpcolumns N'[계정].[테이블명]', @orderby = 'id' 간단하면서도 유용한 팁입니다. 물론 이것을 다른 방법으로도 찾을 수는 있지만 이렇게 사용하는 것이 더 편할 것 같네요. 공감수 0 댓글수 0 2013. 10. 26.
  • 백업과 복원 backup database INNOYADB to disk = 'c:\INNOYADB.bak' RESTORE FILELISTONLY FROM DISK = 'c:\INNOYADB.bak' RESTORE DATABASE INNOYADB_BACKUP FROM DISK = 'c:\INNOYADB.bak' WITH REPLACE , MOVE 'INNOYADB' TO 'c:\[0]Sql_Data\INNOYADB_BACKUP.mdf' , MOVE 'INNOYADB_log' TO 'c:\[0]Sql_Data\INNOYADB_BACKUP_log.ldf' 공감수 0 댓글수 0 2013. 3. 3.
  • MSSQL 16진수를 10진수로 변환하기 출처 http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=37693&ref=37693 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].HexToDec') and OBJECTPROPERTY(id, N'IsScalarFunction') = 1) drop function [dbo].HexToDec GO SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO /*------------------------------------------------------------------------- HexToDec 목 적 : Hex 스트링.. 공감수 0 댓글수 0 2009. 12. 24.
  • SQL Server for Developer: 개발자를 위한 튜닝 가이드 SQL Server for Developer: 개발자를 위한 튜닝 가이드 본 튜닝 가이드는 경험 있는 SQL관리자와 초보자 모두에게 도움이 되도록 기초부터 고급까지 튜닝에 꼭 필요한 내용을 최대한 쉬운 예제를 통해 기술했습니다. 예제는 쉽더라도 그 내용은 무척 중요하므로 꼭 따라 하면서 본 튜닝 가이드를 실습하여 봅시다. 쿼리 디자인 수칙1. SELECT는 필요한 결과값만을 요구하는가? 수칙2. 적절한 WHERE조건을 사용하는가? 수칙3. COUNT(컬럼명) 대신 COUNT(*)을 사용하는가? 수칙4. 커서 및 임시 테이블의 내용을 최대한 자제하는가? 수칙5. VIEW의 총 사용을 줄였는가? 수칙6. 저장 프로시저를 사용하는가? 수칙7. 저장 프로시저를 적절하게 리컴 파일 하며 사용하는가 ? 수칙8. 작.. 공감수 0 댓글수 0 2009. 10. 26.
  • SQL Server 2K5 Job Schedule 문서화 2K와 스키마 일부 변경 set nocount on go DECLARE job_cursor CURSOR FOR SELECT job_id FROM sysjobs ORDER BY [name] asc OPEN job_cursor DECLARE @job_id uniqueidentifier create table #tmp (iSeq int identity(1,1) not null, tmp text not null) declare @job varchar(8000) set @job = '' FETCH NEXT FROM job_cursor INTO @job_id WHILE @@FETCH_STATUS = 0 BEGIN select @job = @job + '===' + name + '===' + ' ' + CASE en.. 공감수 0 댓글수 0 2009. 10. 26.
  • 순위 결정 함수 순위 결정 함수 SQL Server 2005는 ROW_NUMBER, RANK, DENSE_RANK, NTILE의 새로운 순위 결정 함수 4가지를 도입하였습니다. 이 새로운 함수들을 이용하면 데이터를 효율적으로 분석하고 쿼리의 결과 행에 순위 결정 값을 제공할 수 있습니다. 이 새로운 함수가 도움이 될 수 있는 전형적인 시나리오로서 프레젠테이션 목적, 페이징, 평가 및 히스토그램에 대한 결과 행에 순차 정수를 지정하는 경우를 들 수 있습니다. 화자 통계 시나리오 다음의 화자 통계 시나리오는 서로 다른 함수와 각 함수의 절에 대해 설명하고 예시할 때 사용될 것입니다. 대규모 컴퓨팅 회의에는 데이터베이스, 개발 및 시스템 관리의 세 가지 트랙이 포함되었습니다. 이 회의에는 11명의 화자가 참여하였고 각자 주어.. 공감수 0 댓글수 0 2009. 10. 24.
  • SQL Server 2005 TSQL - 1. 새로운 데이터 타입 출처 -- http://www.mcpworld.com/eseminar/seminar_list.asp 내용 •새로운 데이터 타입 •새로운 함수 – Ranking 함수 •새로운 관계형 연산자 •Except와 Intersect •TOP - 매개 변수 지원 •OUTPUT 절 •Common Table Expression •스냅샷 격리 •DDL 트리거 •향상된 오류 처리 •새로운 데이터 타입 1.. varchar(max) 문자열/이진 데이터의 크기가 상당히 가변적이며 8,000 바이트를 초과할 수 있는 경우에 사용함 문자열 함수 사용 가능함 작은 데이터와 큰 데이터가 혼합된 환경에서 단일화된 프로그래밍 모델을 제공함 비교 트리거 문자열 결합 집계 매개 변수 변수 Included Column 인덱스 Text 타입보다.. 공감수 0 댓글수 0 2009. 10. 24.
  • SQL Server 2005 TSQL - 5.. 오류처리 출처 -- http://www.mcpworld.com/eseminar/seminar_list.asp SQL Server 2000에서의 오류 처리 SQL Server 2000에서는 @@error 함수가 오류 정보를 나타냄 @@ERROR 전역 변수 마지막으로 실행된 T-SQL문의 오류 번호를 반환함 T-SQL 문이 성공적으로 실행된 경우  @@ERROR = 0 T-SQL 문이 실행될 때마다 새로운 값이 설정됨 제약 사항 SQL 문 다음에 매번 @@ERROR 값을 검사해야 함 GOTO 문과 Label을 사용하기 때문에 중앙 집중화된 오류 처리를 구현하게 됨 트랜잭션 또는 일괄 처리(Batch)를 중단시키는 오류의 경우에는 오류 처리가 되지 않음 자세한 오류 정보가 제공되지 않음 SQL Server 2005에.. 공감수 0 댓글수 0 2009. 10. 24.
  • SQL Server 2005 TSQL - 4.. 기타 출처 -- http://www.mcpworld.com/eseminar/seminar_list.asp 향상된 TOP 기능 SQL 7.0과 2000 상수만 사용 가능 SELECT TOP SQL 2005 : TOP () TOP에 변수 사용 가능 구문 TOP (expression) [PERCENT] [ WITH TIES ] 은 변수, 서브쿼리, 상수가 될 수 있음 INSERT, UPDATE, DELETE 에도 사용 가능함 쿼리 옵티마이저가 실행 계획 작성 시 고려 대상임 OUTPUT 절 DML 연산의 일부로서, 행을 반환하는 기능임 작업의 결과를 확인 가능함 “Inserted” 와 “Deleted” 를 사용하여 업데이트 전후의 데이터를 확인 가능함 결과 행을 테이블 또는 변수에 저장 가능함 OUTPUT … IN.. 공감수 0 댓글수 0 2009. 10. 24.
  • SQL Server 2005 TSQL - 3. 새로운 관계형 연산자 출처 -- http://www.mcpworld.com/eseminar/seminar_list.asp PIVOT 행을 컬럼으로 변환함 Access의 TRANSFORM과 유사함 OLAP 에서 유용하게 활용 가능함 UNPIVOT PIVOT의 반대 연산자 APPLY CROSS APPLY OUTER APPLY 1.. PIVOT Make Year Sales Honda 1990 2000 Honda 1990 1000 Acura 1990 500 Honda 1991 3000 Acura 1991 300 Acura 1991 600 Acura 1992 800 SELECT * FROM CarSales PIVOT(SUM(Sales) FOR Year IN ([1990],[1991]))t Make 1990 1991 Honda 3000.. 공감수 0 댓글수 0 2009. 10. 24.
  • SQL Server 2005 TSQL - 2. Ranking 함수 출처 -- http://www.mcpworld.com/eseminar/seminar_list.asp Ranking 함수의 종류 RANK() DENSE_RANK() NTILE() ROW_NUMBER() 집계 작업에 사용 가능 사용자 정의 함수와 함께 사용 가능 함수 설명 RANK-- 결과 집합의 각 행에 대하여 지정된 파티션 내에서 정렬 기준에 의거하여 등급을 부여하는 함수 DENSE_RANK-- 결과 집합의 각 행에 대하여 지정된 파티션 내에서 정렬 기준에 의거하여 연속적인 등급을 반환하는 함수 ROW_NUMBER --결과 집합의 각 행에 대하여 행의 위치 번호를 반환하는 함수 NTILE (n) --결과 집합의 각 파티션에 있는 행들을 지정한 개수만큼의 그룹으로 쪼개어 등급을 부여하는 함수 Ranking.. 공감수 0 댓글수 0 2009. 10. 24.
  • MS-SQL서버 전자(전각)<-->반자(반각)변환함수샘플 ------------------------------------------ -- 전자(전각) --> 반자(반각)로 변환. ------------------------------------------ CREATE function [dbo].[tohalfchar] (@a nvarchar(4000)) returns nvarchar(4000) as begin declare @i int declare @str nvarchar declare @result nvarchar(4000) set @result='' set @str='' set @i=1 while @i= 44032) and ( Unicode(substring(@a,@i,1))= 65280) and ( Unicode(substring(@a,@i,1)) 전자.. 공감수 0 댓글수 0 2009. 1. 14.
  • SQL 2005 메일 발송하기 데이터베이스 메일 셋팅 후.. 쿼리에서 발송시... declare @body1 nvarchar(100) set @body1 = N'Server :'+@@servername+ N' My First Database Email ' EXEC msdb.dbo.sp_send_dbmail @recipients='innoya@ynkjapan.co.jp', @profile_name = 'Alert Mail', @subject = 'My Mail Test', @body = @body1, @body_format = 'HTML' ; 공감수 0 댓글수 0 2008. 12. 30.
  • 접속로그 출석부 표시부분 SQL /* USE [RohanLog] GO /****** オブジェクト: View [dbo].[vComWeekList] スクリプト日付: 12/15/2008 12:53:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* // #### INNO #### // ObjectName : vComWeekList // Description : 주간 정보 검색 // Author Info : 2008-06-17 by inno // Modified Info : // Usage, EX) : vComWeekList Select * From vComWeekList Where WeekStDay >= DateAdd(dd, -6, '2007-12-25') and WeekEndDa.. 공감수 0 댓글수 0 2008. 12. 15.
  • WITH ENCRYPTION 의 암호화 해제 SQL2000 서버에서 중요한 VIEW 나 PROCEDURE의 소스 코드를 감추기 위해서 WITH ENCRYPTION이라는 옵션을 사용한다. 이 옵션을 사용하면, 해당 개체의 소스 코드가 암호화된다. SQL 온라인 설명서는 암호화 해제를 할 수 없으니 반드시 소스 코드를 따로 보관해야 한다고 말한다. 그러나 웹 상에는 이 암호화를 해제하는 저장 프로시저가 돌아다니고 있다. 소스 코드는 파일로 첨부했고, 사용 예제는 다음과 같다. CREATE PROCEDURE hello WITH ENCRYPTION AS PRINT ‘Hello World!’ GO exec sp_helptext hello GO exec dbo.DECRYPTSP2K ‘hello’ GO exec sp_helptext hello GO 공감수 0 댓글수 0 2008. 12. 7.
  • 프로시져를 이용 DISK에 새로운 폴더 생성하기 http://blog.naver.com/koro74/100047428679 공감수 0 댓글수 0 2008. 12. 7.
  • 동적쿼리 NVARCHAR(4000) 이상 사용시.. DECLARE @sqlStr1 nvarchar(4000), @sqlStr2 nvarchar(4000), @sqlStr3 nvarchar(4000), @sqlstr nvarchar(max) SET @sqlStr1 = N'SELECT ''' + REPLICATE(N'1', 3980) + ''' UNION ALL ' SET @sqlStr2 = N'SELECT ''' + REPLICATE(N'2', 3980) + ''' UNION ALL ' SET @sqlStr3 = N'SELECT ''' + REPLICATE(N'3', 3991) + '''' SELECT LEN(@sqlStr1) as sqlStr1_Length, LEN(@sqlStr2) as sqlStr2_Length, LEN(@sqlStr3) as sqlS.. 공감수 0 댓글수 0 2008. 12. 7.
  • SQL 서버정보, 하드디스크 정보, 테이블,프로시져정보 -- SQL 서버 정보 SELECT SUBSTRING(@@VERSION,0,CHARINDEX(' - ',@@VERSION)), SERVERPROPERTY ('edition'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY('productversion') -- SQL 서버 하드디스크 정보 exec master.dbo.xp_fixeddrives -- 해당 데이터베이스의 테이블 정보 및 프로시져 등 SELECT A.name, B.name FROM dbo.sysusers A JOIN dbo.sysobjects B ON A.uid = B.uid AND B.xtype IN( 'U','P') 공감수 0 댓글수 0 2008. 12. 6.
  • 자동 링크서버 등록 DECLARE @DBServerIP varchar(16) DECLARE @DBServerUserID varchar(100) DECLARE @DBServerUserPW varchar(100) SELECT @DBServerIP = DBServerIP, @DBServerUserID = DBServerUserID, @DBServerUserPW = DBServerUserPW FROM dbo.DBServer DECLARE @StrSQL nvarchar(4000) SET @StrSQL = N'EXEC master.dbo.sp_addlinkedserver @server = N''' + @DBServerIP + ''', @srvproduct=N''SQL Server''' EXEC sp_executesql @StrSQL .. 공감수 0 댓글수 0 2008. 12. 6.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.