<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Jaeha's Home</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jaeha/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jaeha/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 06:08:22 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>[T-SQL] SQL Server 2008 : 계층구조 쉽게 처리하기 - HierarchyID</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/t-sql-sql-server-2008-hierarchyid</link>
      <pubDate>Tue, 10 Nov 2009 15:49:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/11/10/t-sql-sql-server-2008-hierarchyid/</guid>
      <description><![CDATA[SQL Server 2008에서는 계층 구조형 데이터를 지원하기 위한 HierarchyID 데이터 타입을 지원합니다. HierarchyID 데이터 타입을 이용하면 기존 SQL...]]></description>
      <content:encoded><![CDATA[<P><FONT face=verdana,geneva>SQL Server 2008에서는 계층 구조형 데이터를 지원하기 위한 HierarchyID 데이터 타입을 지원합니다. <BR>HierarchyID 데이터 타입을 이용하면 기존 SQL Server 2000의 재귀 쿼리 및 2005의 CTE (공통 테이블 식)을 이용하는 것 보다 훨씬 편하게 조직도 등의 계층 구조를 표현할 수 있습니다. (해당 내용은 BOL에서도 확인하실 수 있습니다.)<BR>&nbsp;- GetAncestor, GetDescendant, GetLevel, GetRoot, IsDescendantOf&nbsp;등 다양한 메소드를 통해 쉽게 계층구조 쿼리를 할 수 있습니다.<BR>&nbsp;- 깊이 우선 인덱스 (Depth-first Index) 및 너비 우선 인덱스 (Breadth-First Index) 지원하여 쿼리 성능을 보장합니다.<BR><IMG src="https://public.bay.livefilestore.com/y1pjJV_V1h8Dwf8ouuBm48AH9gVGjYag5gXV_vKEGHf6-exS186a3lyv-1y9UIesxX0kqHxzZHIAHiT4Hpo3TaykA/HierarchyID%20Index.jpg" mce_src="https://public.bay.livefilestore.com/y1pjJV_V1h8Dwf8ouuBm48AH9gVGjYag5gXV_vKEGHf6-exS186a3lyv-1y9UIesxX0kqHxzZHIAHiT4Hpo3TaykA/HierarchyID%20Index.jpg"></FONT></P>
<P><FONT face=verdana,geneva>그럼 간단하게 HierarchyID를 사용하여 계층구조를 표현해 보도록 하겠습니다.<BR>전체적인 조직도는 아래와 같이 출력해보려 합니다.</FONT></P>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px" dir=ltr>
<P><FONT face=verdana,geneva>/************************************<BR>David (Marketing Manager)</FONT></P>
<P><FONT face=verdana,geneva>&nbsp;└ Sariya (Marketing Specialist)<BR></FONT><FONT face=verdana,geneva>&nbsp;&nbsp;&nbsp; └&nbsp; Wanida (Marketing Assistant)</FONT></P>
<P><FONT face=verdana,geneva>&nbsp;└ John (Marketing Specialist)<BR></FONT><FONT face=verdana,geneva>&nbsp;&nbsp;&nbsp; └ Mary (Marketing Assistant)</FONT></P>
<P><FONT face=verdana,geneva>&nbsp;└ Jill (Marketing Specialist)<BR>************************************/</FONT></P>
<P><FONT face=Verdana></FONT>&nbsp;</P></BLOCKQUOTE>
<P><FONT face=verdana,geneva>우선 아래와 같이 테스트를 위한 샘플 테이블 및 인덱스를 생성합니다.</FONT></P>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px" dir=ltr>
<P><FONT face="courier new,courier"><FONT color=#006600>-- HierarchyID 데이터 타입을 사용하는 테이블 작성</FONT><BR><EM>CREATE TABLE HumanResources.EmployeeOrg<BR>(<BR>&nbsp;&nbsp; <FONT color=#000099><STRONG>OrgNode hierarchyid PRIMARY KEY CLUSTERED</STRONG></FONT>,<BR>&nbsp;&nbsp; EmployeeID int UNIQUE NOT NULL,<BR>&nbsp;&nbsp; EmpName varchar(20) NOT NULL,<BR>&nbsp;&nbsp; Title varchar(20) NULL<BR>) ;<BR>GO</EM></FONT></P>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 깊이 우선 인덱스 생성 (depth-first index)</FONT><BR><EM>CREATE UNIQUE INDEX EmployeeOrgNc1 <BR>ON HumanResources.EmployeeOrg(OrgNode) ;<BR>GO</EM></FONT></P>
<P><EM><FONT face="Courier New"></FONT></EM>&nbsp;</P></BLOCKQUOTE>
<P><FONT face=verdana,geneva>이제 테스트를 위한 샘플 데이터를 테이블에 넣으려 하는데요, Root 데이터를 INSERT하고 나머지 데이터는 프로시저를 만들어서 넣도록 하겠습니다.</FONT></P>
<BLOCKQUOTE>
<P><FONT face="courier new,courier"><FONT color=#006600>-- Root 데이터(David, Marketing Manager) 추가</FONT><BR><EM>INSERT HumanResources.EmployeeOrg (OrgNode, EmployeeID, EmpName, Title)<BR>VALUES (<STRONG><FONT color=#0000cc>hierarchyid::GetRoot()</FONT></STRONG>, 6, 'David', 'Marketing Manager') ;<BR>GO</EM></FONT></P>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 직원을 추가하기 위한 프로시저 생성 (<STRONG>파라미터 : <U>Manager ID</U>, 직원 ID, 이름, 직책</STRONG>)</FONT><BR><EM>CREATE PROC AddEmp(@mgrid int, @empid int, @e_name varchar(20), @title varchar(20)) <BR>AS <BR>BEGIN<BR>&nbsp;&nbsp; DECLARE @mOrgNode hierarchyid, @lc hierarchyid<BR>&nbsp;&nbsp; SELECT @mOrgNode = OrgNode <BR>&nbsp;&nbsp; FROM HumanResources.EmployeeOrg <BR>&nbsp;&nbsp; WHERE EmployeeID = @mgrid<BR>&nbsp;&nbsp; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE<BR>&nbsp;&nbsp; BEGIN TRANSACTION<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </EM><FONT color=#000099><STRONG><EM>SELECT @lc = max(OrgNode) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM HumanResources.EmployeeOrg <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE OrgNode.GetAncestor(1) </EM></STRONG></FONT></FONT><FONT color=#000099><STRONG><EM><FONT face="courier new,courier">=@mOrgNode</FONT><FONT face="courier new,courier"> ;</FONT></EM></STRONG></FONT></P>
<P><FONT face="courier new,courier"><EM>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </EM><EM><FONT color=#000099><STRONG>INSERT HumanResources.EmployeeOrg (OrgNode, EmployeeID, EmpName, Title)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUES(@mOrgNode.GetDescendant(@lc, NULL), @empid, @e_name, @title)</STRONG></FONT><BR>&nbsp;&nbsp; COMMIT<BR>END ;<BR>GO</EM></FONT></P>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 프로시저를 이용하여 David를 Manager(Parent Node)로 하는 직원 추가<BR></FONT><EM>EXEC AddEmp 6, 46, 'Sariya', 'Marketing Specialist' ;<BR>EXEC AddEmp 6, 271, 'John', 'Marketing Specialist' ;<BR>EXEC AddEmp 6, 119, 'Jill', 'Marketing Specialist' ;</EM></FONT></P>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 프로시저를 이용하여 Sariya를 Manager(Parent Node)로 하는 직원 추가<BR></FONT><EM>EXEC AddEmp 46, 269, 'Wanida', 'Marketing Assistant' ;</EM></FONT></P>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 프로시저를 이용하여 John을 Manager(Parent Node)로 하는 직원 추가</FONT><BR><EM>EXEC AddEmp 271, 272, 'Mary', 'Marketing Assistant'</EM></FONT><EM> </EM></P>
<P><EM></EM>&nbsp;</P></BLOCKQUOTE>
<P>데이터를 넣은 후 SELECT 문을 이용해 전체 계층 구조를 쿼리해 보면 아래와 같이 결과를 얻을 수 있습니다.</P>
<BLOCKQUOTE>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 전체 조직도 출력</FONT><BR><EM>SELECT OrgNode.ToString() AS Text_OrgNode, <BR>OrgNode, EmployeeID, EmpName, Title <BR>FROM dbo.EmployeeOrg ;</EM></FONT></P>
<P><IMG src="https://ocpmiq.bay.livefilestore.com/y1pOgIrt1WxwdPelqpXHfjgPQf5-arzmRTKyj7_oIzF7s45zOJ9D_I1kLxLiOaixL8ast5z1s9cgcx5mJ74a1Y6G6v0FOO-__ZO/HierarchyID%20Query1.jpg" mce_src="https://ocpmiq.bay.livefilestore.com/y1pOgIrt1WxwdPelqpXHfjgPQf5-arzmRTKyj7_oIzF7s45zOJ9D_I1kLxLiOaixL8ast5z1s9cgcx5mJ74a1Y6G6v0FOO-__ZO/HierarchyID%20Query1.jpg"></P>
<P mce_keep="true">&nbsp;</P></BLOCKQUOTE>
<P>만약 조직도 내에서 각 직원의 조직 내 레벨을 출력하고 싶을 경우엔 GetLevel() 함수를 사용하여 쉽게 출력 가능합니다.</P>
<BLOCKQUOTE>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 각 직원별 조직도에서의 레벨을 포함하여 출력</FONT><BR><EM>SELECT OrgNode.ToString() AS Text_OrgNode, <BR>OrgNode.GetLevel() AS EmpLevel, *<BR>FROM dbo.EmployeeOrg ;<BR>GO</EM></FONT></P>
<P><IMG src="https://ocpmiq.bay.livefilestore.com/y1p2TNJv0sX1Twy9bM0RYTCDFIn4-gqX1fOg3ZLhBrzuH-55GYcELMajtZK1p3b5cGjMV1pgY_pYitAFFAmTKDSyEOa7KQEjwq2/HierarchyID%20Query2.jpg" mce_src="https://ocpmiq.bay.livefilestore.com/y1p2TNJv0sX1Twy9bM0RYTCDFIn4-gqX1fOg3ZLhBrzuH-55GYcELMajtZK1p3b5cGjMV1pgY_pYitAFFAmTKDSyEOa7KQEjwq2/HierarchyID%20Query2.jpg"></P>
<P mce_keep="true">&nbsp;</P></BLOCKQUOTE>
<P>특정 직원의 부모 노드를 Root노드 까지 모두 출력해 보고 싶을 경우엔 IsDescendantOf() 함수를 이용할 수 있습니다.</P>
<BLOCKQUOTE>
<P><FONT face="courier new,courier"><FONT color=#006600>-- 특정 직원의 부모 노드(Root까지)를 모두 출력</FONT><BR><EM>DECLARE @CurrentEmployee hierarchyid</EM></FONT></P></BLOCKQUOTE>
<BLOCKQUOTE>
<P><FONT face="courier new,courier"><EM>SELECT @CurrentEmployee = OrgNode<BR>FROM dbo.EmployeeOrg<BR>WHERE EmployeeID = 269 ;</EM></FONT></P>
<P><FONT face="courier new,courier"><EM>SELECT *<BR>FROM dbo.EmployeeOrg<BR>WHERE @CurrentEmployee.IsDescendantOf(OrgNode) = 1 ;</EM></FONT></P>
<P><EM><FONT face="Courier New"><IMG src="https://public.bay.livefilestore.com/y1pk63XRZunBJoYgk8VDmLy6MRbd2lSgKNtSXQFG9jqGvB_cnkgsllfJGXLpLXE1CgiXcmzN12pAs_nvjlxZegMxw/HierarchyID%20Query3.jpg" mce_src="https://public.bay.livefilestore.com/y1pk63XRZunBJoYgk8VDmLy6MRbd2lSgKNtSXQFG9jqGvB_cnkgsllfJGXLpLXE1CgiXcmzN12pAs_nvjlxZegMxw/HierarchyID%20Query3.jpg"><BR></FONT></EM><EM><FONT face="Courier New"><BR></P></FONT></EM></BLOCKQUOTE>
<P mce_keep="true">이렇듯 SQL Server 2008의 HierarchyID 데이터 타입을 이용하면, 저 처럼 재귀처리에 꽝(?!)인 사람도 쉽게 조직도 및 계층도 등을 구현할 수 있습니다.<BR>많이 많이 이용해주세요~ :)</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>[T-SQL] SQL Server 2008 : Merge를 이용해보자!</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/t-sql-sql-server-2008-merge</link>
      <pubDate>Tue, 10 Nov 2009 15:28:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/11/10/t-sql-sql-server-2008-merge/</guid>
      <description><![CDATA[SQL Server 2008에서는 “Merge” 라는 새로운 T-SQL Statement가 추가되었습니다. “Merge”를 이용하면 Source 테이블과 Target 테이블을...]]></description>
      <content:encoded><![CDATA[<P><FONT face=verdana,geneva>SQL Server 2008에서는 “Merge” 라는 새로운 T-SQL Statement가 추가되었습니다. <BR>“Merge”를 이용하면 Source 테이블과 Target 테이블을 동기화 하는 등의 시나리오에 있어서 기존의<U> INSERT/UPDATE/DELETE를 각각 수행하는 3-Step T-SQL보다 200% 이상의 뛰어난 성능을 제공</U>합니다.<BR><IMG src="https://ocpmiq.bay.livefilestore.com/y1pZCQWz_LDayFXhDUqOwCpJl0PzUt_weuL4MbgFy02UAs0B5ZZMbgtDtO8DVPoyyAc8x_2g9GHECrjoFSC3733zRS-JUxbw8RA/Merge%20Perf.jpg" mce_src="https://ocpmiq.bay.livefilestore.com/y1pZCQWz_LDayFXhDUqOwCpJl0PzUt_weuL4MbgFy02UAs0B5ZZMbgtDtO8DVPoyyAc8x_2g9GHECrjoFSC3733zRS-JUxbw8RA/Merge%20Perf.jpg"></FONT></P>
<P><FONT face=verdana,geneva>그럼 Merge 구문을 어떻게 사용하느냐? 아래의 간단한 예제만 봐도 쉽게 사용할 수 있습니다.<BR>우선 테스트를 위해 Source와 Target이라는 2개의 테이블을 생성합니다.</FONT></P>
<BLOCKQUOTE>
<P><FONT face="courier new,courier"><EM>CREATE TABLE Source (id INT, name NVARCHAR(100), qty INT);<BR>CREATE TABLE Target (id INT, name NVARCHAR(100), qty INT);</EM></FONT></P></BLOCKQUOTE>
<P><FONT face=Verdana>그리고 Merge를 사용하여 Target 테이블을 Source 테이블과 동기화 시킬 수 있습니다.<BR>(주석을 참조하시면 각각의 경우에 맞게 Action을 취할 수 있다는 것을 확인할 수 있습니다)</FONT></P>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px" dir=ltr>
<P><FONT face="courier new,courier"><EM><STRONG><FONT color=#0000cc>MERGE</FONT></STRONG> Target AS t<BR>&nbsp;&nbsp;&nbsp; USING Source AS s<BR>&nbsp;&nbsp;&nbsp; ON t.id = s.id<BR>&nbsp;&nbsp;&nbsp; WHEN MATCHED AND <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (t.name != s.name OR t.qty!= s.qty) THEN<BR></EM><FONT color=#006600><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- 동일한 Row가 존재하고 데이터가 다르면</STRONG></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <EM>UPDATE SET t.name = s.name, t.qty = s.qty<BR>&nbsp;&nbsp;&nbsp; WHEN NOT MATCHED BY TARGET THEN <BR></EM><FONT color=#006600><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- 소스에는 Row가 존재하는데 Target에는 Row가 존재하지 않으면</STRONG></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <EM>INSERT VALUES (s.id, s.name, s.qty) <BR>&nbsp;&nbsp;&nbsp; WHEN NOT MATCHED BY SOURCE THEN <BR></EM><FONT color=#006600><STRONG><EM>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </EM>-- Target에는 데이터가 존재하는데 Soruce에는 데이터가 없으면</STRONG></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <EM>DELETE<BR>&nbsp;&nbsp;&nbsp; OUTPUT $action, inserted.id, deleted.id;</EM><BR></FONT></P></BLOCKQUOTE>
<P><FONT face=Verdana>참 쉽죠~잉?</FONT></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server 2008 R2 November CTP Released</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/sql-server-2008-r2-november-ctp-released</link>
      <pubDate>Tue, 10 Nov 2009 00:48:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/11/10/sql-server-2008-r2-november-ctp-released/</guid>
      <description><![CDATA[내년 상반기 중에 출시 예정인 SQL Server 2008 R2의&nbsp;November CTP가 릴리즈 되었습니다.

MSDN/Technet 구독자가 아닌 경우 11월...]]></description>
      <content:encoded><![CDATA[<P><FONT face=verdana,geneva>내년 상반기 중에 출시 예정인 SQL Server 2008 R2의&nbsp;November CTP가 릴리즈 되었습니다.</FONT></P>
<P><FONT face=Verdana><IMG style="WIDTH: 600px; HEIGHT: 154px" src="https://ocpmiq.bay.livefilestore.com/y1pD8qLZfjh_kIiVzDIFCFXhnaLePyq4Z9ZZQFcA1Sp5iCzBKiYNOq63R6eYJEXvowu5iPrs_L4UDXXMuOJro5tPjf_45cIotGE/R2CTP.jpg" width=600 height=154 mce_src="https://ocpmiq.bay.livefilestore.com/y1pD8qLZfjh_kIiVzDIFCFXhnaLePyq4Z9ZZQFcA1Sp5iCzBKiYNOq63R6eYJEXvowu5iPrs_L4UDXXMuOJro5tPjf_45cIotGE/R2CTP.jpg"></FONT></P>
<P><FONT face=Verdana>MSDN/Technet 구독자가 아닌 경우 11월 11일 부터 다운로드가 가능하다고 합니다.<BR>관심 있으신 분들은 <A href="https://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx" mce_href="https://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx">여기</A>를 클릭하셔서 SQL Server 2008 R2의 새로운 모습을 미리 체험해보세요 :)</FONT></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Top 10 SQL Server 2008 Features for ISV Application</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/top-10-sql-server-2008-features-for-isv-application</link>
      <pubDate>Mon, 09 Nov 2009 23:44:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/11/09/top-10-sql-server-2008-features-for-isv-application/</guid>
      <description><![CDATA[SQL Server 2008은&nbsp;기존 2000/2005에 비해 수 많은 다양한 새로운 기능을 갖고 있습니다.이 중에 SQL Server를 기반으로 애플리케이션을 개발하는...]]></description>
      <content:encoded><![CDATA[<P><FONT face=verdana,geneva>SQL Server 2008은&nbsp;기존 2000/2005에 비해 수 많은 다양한 새로운 기능을 갖고 있습니다.<BR></FONT><FONT face=Verdana>이 중에 SQL Server를 기반으로 애플리케이션을 개발하는 ISV 들을 위한 TOP 10 기능 및 그 효과를 간단히 나열해 봤습니다.</FONT></P>
<P><FONT face=Verdana><STRONG><EM>1. Data Compression</EM></STRONG><BR></FONT><FONT color=#000099 face=Verdana>파티션 단위로 Row/Page&nbsp;데이터 압축을 적용할 수 있으며, Disk I/O 최소화 및 Buffer memory에 대한 효율적인 사용이 가능합니다.<BR>데이터의 종류 및 페이지 내의 데이터 분포에 따라 달라질 수 있지만, 일반적으로 1/2 ~ 1/7의 압축비를 제공합니다.</FONT></P>
<P><FONT face=Verdana><STRONG><EM>2. Backup Compression<BR></EM></STRONG><FONT color=#000099>전체 백업 등의 백업 생성 시&nbsp;압축하여 생성하며,&nbsp;Disk I/O 최소화로 백업/복구 성능을 향상시킬 수 있습니다.<BR>데이터의 종류 및 페이지 내의 데이터 분포에 따라 달라질 수 있지만, 일반적으로 1/2 ~ 1/7의 압축비를 제공합니다.</FONT></FONT><FONT face=Verdana>&nbsp;&nbsp;</FONT></P>
<P><FONT face=Verdana><STRONG><EM>3. TDE (Transparent Data Encryption)</EM><BR></STRONG><FONT color=#000099>데이터 파일 혹은 백업 파일에 대한 암호화를 제공합니다.&nbsp;Page I/O 발생 시 데이터 암호화/복호화가 이루어집니다.<BR>TDE를 적용해도 애플리케이션의 어떠한 코드 수정도 필요하지 않기 때문에, 쉽게 적용 가능합니다.</FONT></FONT></P>
<P><FONT face=Verdana><STRONG><EM>4. Data Collector &amp; MDW (Management Data Warehouse)<BR></EM></STRONG><FONT color=#000099>성능 카운터 및 DMV(동적 관리 뷰) 등에서 제공되는 정보를 주기적으로 수집하여 성능 관리를 위한 데이터 웨어하우스를 만들 수 있습니다.<BR>서버 사용 정보, 디스크 공간 정보, 쿼리 성능 정보 등의 리포트가 기본적으로 제공되며, 원한다면 Reporting Services를 기반으로 커스터마이징 할 수 있습니다.</FONT></FONT></P>
<P><FONT face=Verdana><STRONG><EM>5. Lock Escalation Enhancement</EM></STRONG><BR><FONT color=#000099>SQL Server는 데이터베이스 엔진에서 Lock escalation을 조정하며, 간혹 예기치 않은 Lock escalation은 Deadlock 등이 발생할 수 있습니다.<BR>SQL Server 2008부터는 ALTER TABLE 구문을 통해 테이블 단위로 Lock escalaction의 발생을 조절하는 것이 가능합니다.</FONT></FONT></P>
<P><FONT face=Verdana><STRONG><EM>6. Query Plan Freezing</EM></STRONG><BR><FONT color=#000099>ISV 애플리케이션은 일정한 성능 보장을 위해 특정 쿼리가 항상 같은 쿼리 실행 계획을 사용하도록 조절해야 할 경우가 있습니다.<BR>SQL Server 2008의 Query Plan Freezing 기능을 이용하면, 파라미터 스니핑 혹은 통계 정보 관리 미흡 등에 의해 쿼리 실행 계획이 변경되는 경우를 미연에 방지할 수 있습니다.</FONT></FONT></P>
<P><FONT face=Verdana><STRONG><EM>7. Optimize for Ad-Hoc Workloads Option<BR></EM></STRONG><FONT color=#000099>SQL Server 2008은 구성 옵션 (sp_configure)에서 Optimized for Ad-Hoc Workloads라는 옵션을 새롭게 제공합니다.<BR>해당 옵션을 활성화 시키실 경우 Ad-hoc 쿼리의 사용 비율이 많은 ISV 애플리케이션에서는 Plan cache를 좀더 효율적으로 사용할 수 있습니다.</FONT></FONT></P>
<P><FONT face=Verdana><STRONG><EM>8. Resource Governor</EM></STRONG><BR><FONT color=#000099>서버 통합과 같이 다양한 Workloads가 실행되는 환경 혹은 특정 업무에 대한 중요성이 높은 환경일 경우 유용한 Resource Governor 입니다.<BR>Resource Governor를 이용하면 Workload 별로 CPU/Memory 등의 서버 자원을 동적으로 분배할 수 있으며, 이를 통해 일정한&nbsp;성능을 보장할 수 있습니다.</FONT>&nbsp;</FONT></P>
<P><FONT face=Verdana><STRONG><EM>9. Table-Valued Parameter<BR></EM></STRONG><FONT color=#000099>테이블 변수를 만들어 해당 변수에 마치 임시 테이블과 같이 데이터를 INSERT 후 이 변수를 저장 프로시저 혹은 함수에 파라미터 형태로 전달할 수 있는 기능입니다.<BR>임시 테이블을 만들어 전달하던 과거의 방식 보다는 I/O 및 성능 개선 효과가 있으며, 시나리오에 따라 뛰어난 대량 데이터 적재 방법으로 사용될 수 있습니다.</FONT></FONT></P>
<P><FONT face=Verdana><STRONG><EM>10. Filestream<BR></EM></STRONG><FONT color=#000099>스트리밍 등을 위해 별도의 파일 서버로 저장되는 동영상, 음악, 이미지 등의 대용량 BLOB데이터를 효과적으로 SQL Server에서 저장/관리/사용할 수 있는 기능입니다.<BR>1MB 이상의 BLOB 데이터를 처리할 경우에 효과적이며 (사이즈가 작으면 권장하지 않습니다..) Win32 Streaming API를 통해 바이너리 파일을 직접 스트리밍 할 수 있습니다.</FONT></FONT></P>
<P mce_keep="true"><BR>위 내용과 관련된 원문은 SQL CAT (Customre Advisory Team) 블로그의 기사에서 확인 가능합니다<BR><FONT color=#ff0000><FONT color=#000000>꼭&nbsp;가셔서 한번&nbsp;읽어보시고&nbsp;이용해보세요~~~ :)&nbsp; (</FONT></FONT><FONT color=#ff0000><STRONG>링크는...</STRONG></FONT><A href="https://sqlcat.com/top10lists/archive/2008/11/24/top-10-sql-server-2008-features-for-isv-applications-burzin.aspx" mce_href="https://sqlcat.com/top10lists/archive/2008/11/24/top-10-sql-server-2008-features-for-isv-applications-burzin.aspx">https://sqlcat.com/top10lists/archive/2008/11/24/top-10-sql-server-2008-features-for-isv-applications-burzin.aspx</A>)</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Windows Server 2008/SQL Server 2008 클러스터 - Part. 2-2</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/windows-server-2008sql-server-2008-part-2-2</link>
      <pubDate>Mon, 24 Aug 2009 01:06:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/08/24/windows-server-2008sql-server-2008-part-2-2/</guid>
      <description><![CDATA[Windows Server 2008 / SQL Server 2008 환경에서
2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해...]]></description>
      <content:encoded><![CDATA[<P>Windows Server 2008 / SQL Server 2008 환경에서</P>
<P>2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해 드립니다.</P>
<P>첨부 문서 참조 :&nbsp; SQL Server 2008 클러스터 구성 (SP1 설치)</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/7774/00/00/03/27/62/19/SQL%20Server%202008_74D0ECB7A4C230D1%206CAD95CD%2000AC74C7DCB4_SQL%20Server%2074D0ECB7A4C230D1%206CAD31C1_2.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-7774-00-00-03-27-62-19/SQL-Server-2008_5F0074D0ECB7A4C230D1_-_6CAD95CD_-_00AC74C7DCB45F00_SQL-Server-_74D0ECB7A4C230D1_-_6CAD31C15F00_2.zip">SQL Server 2008_클러스터 구축 가이드_SQL Server 클러스터 구성_2.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Server 2008/SQL Server 2008 클러스터 - Part. 2-1</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/windows-server-2008sql-server-2008-part-2-1</link>
      <pubDate>Mon, 24 Aug 2009 01:05:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/08/24/windows-server-2008sql-server-2008-part-2-1/</guid>
      <description><![CDATA[Windows Server 2008 / SQL Server 2008 환경에서
2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해...]]></description>
      <content:encoded><![CDATA[<P>Windows Server 2008 / SQL Server 2008 환경에서</P>
<P>2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해 드립니다.</P>
<P>첨부 문서 참조 :&nbsp; SQL Server 2008 클러스터 구성 (노드 설치 및 추가)</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/7774/00/00/03/27/62/17/SQL%20Server%202008_74D0ECB7A4C230D1%206CAD95CD%2000AC74C7DCB4_SQL%20Server%2074D0ECB7A4C230D1%206CAD31C1_1.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-7774-00-00-03-27-62-17/SQL-Server-2008_5F0074D0ECB7A4C230D1_-_6CAD95CD_-_00AC74C7DCB45F00_SQL-Server-_74D0ECB7A4C230D1_-_6CAD31C15F00_1.zip">SQL Server 2008_클러스터 구축 가이드_SQL Server 클러스터 구성_1.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Server 2008/SQL Server 2008 클러스터 - Part. 1</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/windows-server-2008sql-server-2008-part-1</link>
      <pubDate>Mon, 24 Aug 2009 00:54:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/08/24/windows-server-2008sql-server-2008-part-1/</guid>
      <description><![CDATA[Windows Server 2008 / SQL Server 2008 환경에서
2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해...]]></description>
      <content:encoded><![CDATA[<DIV class=postcontent>
<P>Windows Server 2008 / SQL Server 2008 환경에서</P>
<P>2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해 드립니다.</P>
<P>첨부 문서 참조 :&nbsp; Windows Server MSCS 구성 및 MSDTC 리소스 구성</P></DIV>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/7774/00/00/03/27/62/16/SQL%20Server%202008_74D0ECB7A4C230D1%206CAD95CD%2000AC74C7DCB4_MSCS%200FBC%20MSDTC%206CAD31C1.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-7774-00-00-03-27-62-16/SQL-Server-2008_5F0074D0ECB7A4C230D1_-_6CAD95CD_-_00AC74C7DCB45F00_MSCS-_0FBC_-MSDTC-_6CAD31C1_.zip">SQL Server 2008_클러스터 구축 가이드_MSCS 및 MSDTC 구성.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Server 2003/SQL Server 2005 클러스터 - Part. 3-2</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/windows-server-2003sql-server-2005-part-3-2</link>
      <pubDate>Mon, 24 Aug 2009 00:48:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/08/24/windows-server-2003sql-server-2005-part-3-2/</guid>
      <description><![CDATA[Windows Server 2003 / SQL Server 2005 환경에서
2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해...]]></description>
      <content:encoded><![CDATA[<P>Windows Server 2003 / SQL Server 2005 환경에서</P>
<P>2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해 드립니다.</P>
<P>첨부 문서 참조 : SQL Server 2005 클러스터 구성 (SP2 설치)</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/7774/00/00/03/27/62/12/SQL%20Server%202005_74D0ECB7A4C230D1%206CAD95CD%2000AC74C7DCB4_SQL%20Server%2074D0ECB7A4C230D1%206CAD31C1_2.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-7774-00-00-03-27-62-12/SQL-Server-2005_5F0074D0ECB7A4C230D1_-_6CAD95CD_-_00AC74C7DCB45F00_SQL-Server-_74D0ECB7A4C230D1_-_6CAD31C15F00_2.zip">SQL Server 2005_클러스터 구축 가이드_SQL Server 클러스터 구성_2.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Server 2003/SQL Server 2005 클러스터 - Part. 3-1</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/windows-server-2003sql-server-2005-part-3-1</link>
      <pubDate>Mon, 24 Aug 2009 00:47:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/08/24/windows-server-2003sql-server-2005-part-3-1/</guid>
      <description><![CDATA[Windows Server 2003 / SQL Server 2005 환경에서
2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해...]]></description>
      <content:encoded><![CDATA[<P>Windows Server 2003 / SQL Server 2005 환경에서</P>
<P>2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해 드립니다.</P>
<P>첨부 문서 참조 : SQL Server 2005 클러스터 구성 (RTM 설치)</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/7774/00/00/03/27/62/11/SQL%20Server%202005_74D0ECB7A4C230D1%206CAD95CD%2000AC74C7DCB4_SQL%20Server%2074D0ECB7A4C230D1%206CAD31C1_1.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-7774-00-00-03-27-62-11/SQL-Server-2005_5F0074D0ECB7A4C230D1_-_6CAD95CD_-_00AC74C7DCB45F00_SQL-Server-_74D0ECB7A4C230D1_-_6CAD31C15F00_1.zip">SQL Server 2005_클러스터 구축 가이드_SQL Server 클러스터 구성_1.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Server 2003/SQL Server 2005 클러스터 - Part. 2</title>
      <link>https://docs.microsoft.com/archive/blogs/jaeha/windows-server-2003sql-server-2005-part-2</link>
      <pubDate>Mon, 24 Aug 2009 00:46:00 GMT</pubDate>
      <dc:creator><![CDATA[jaeha]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jaeha/2009/08/24/windows-server-2003sql-server-2005-part-2/</guid>
      <description><![CDATA[Windows Server 2003 / SQL Server 2005 환경에서
2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해...]]></description>
      <content:encoded><![CDATA[<P>Windows Server 2003 / SQL Server 2005 환경에서</P>
<P>2-node Active / Passive 클러스터 구축을 위한 방법을 자세히 소개해 드립니다.</P>
<P>첨부 문서 참조 : Windows Server MSCS 구성 및 MSDTC 리소스 추가</P>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/7774/00/00/03/27/62/10/SQL%20Server%202005_74D0ECB7A4C230D1%206CAD95CD%2000AC74C7DCB4_MSCS%200FBC%20MSDTC%206CAD31C1.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-7774-00-00-03-27-62-10/SQL-Server-2005_5F0074D0ECB7A4C230D1_-_6CAD95CD_-_00AC74C7DCB45F00_MSCS-_0FBC_-MSDTC-_6CAD31C1_.zip">SQL Server 2005_클러스터 구축 가이드_MSCS 및 MSDTC 구성.zip</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>