<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>나는 DBA다.. DBA라서 ........</title>
	<link>http://dbakidd.egloos.com</link>
	<description>세상을 발 밑에두고</description>
	<language>ko</language>
	<pubDate>Sat, 27 Dec 2008 15:21:16 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>나는 DBA다.. DBA라서 ........</title>
		<url>http://pds13.egloos.com/logo/200902/27/49/f0056849.jpg</url>
		<link>http://dbakidd.egloos.com</link>
		<width>80</width>
		<height>77</height>
		<description>세상을 발 밑에두고</description>
	</image>
  	<item>
		<title><![CDATA[ 그녀에게 '올인'하지 마라…"놔주는 사랑을 해봐" ]]> </title>
		<link>http://dbakidd.egloos.com/1273204</link>
		<guid>http://dbakidd.egloos.com/1273204</guid>
		<description>
			<![CDATA[ 
  애인과 교제한지 2년 되는 K씨. 모처럼 친구가 저녁이나 하자고 전화를 했지만, 선약이 있다고 거절했다.<br><br>딱히 약속이 있는 건 아니었지만, 애인과 새로 개봉한 영화를 같이 볼까, 하던 차였다. 연애를 시작한 후 K씨의 생활에는 애인 단 한사람뿐이다. 백화점을 가면 남성 용품만 눈에 보이고, 좋은 게 있으면 애인한테 해주고 싶어 안달이다.<br><br>문제는 애인에게도 자신처럼 하기를 강요한다는 것이다. 회식이나 중요한 약속이 있어 데이트를 미루면 난리가 난다. 애인이 자기 마음에 안드는 말이나 행동을 하면 무척 서운해한다. ‘내가 너한테 얼마나 잘하는데, 그럴 수 있느냐?’는 식이다.<br><br>K씨에게 사랑은 올인하는 것이다. 그렇다면 그런 사랑을 받는 그녀의 애인은 과연 행복할까? 그녀는 사랑하는 것이 아니라 잘해주는 것이다. 사랑하는 것과 잘해주는 것은 반드시 일치하지는 않는다. 사랑하면 잘해줄 수도 있지만, 잘해주는 것이 사랑은 아니다.<br><br><b>진정한 사랑은 강요하기보다는 놓아주는 것</b><br>많은 남녀들은 뭐든 아낌없이 줘야 하고, 부르면 언제든 달려가야 하고, 다소 과하다는 생각이 들어도 비싼 물건을 살 수 있어야 하고, 사랑하면 이런 것쯤은 당연하다고 생각한다. 하지만 그것은 사랑하는 것이 아니라 잘해주는 것이다.<br><br>사랑은 이런 것이다. 함께 행복할 수 있는 방법을 찾아 노력하는 것, 상대에게 완벽한 사랑을 주려고 자신을 버리는 것이 아니라 불완전한 두 사람이 함께 사랑을 완성해가는 것, 내 방식을 상대에게 강요하기보다는 서로의 방식을 인정하는 것, 구속하거나 집착하지 말고, 때로는 그냥 놓아주는 것, 사랑하면 이런 마음이 들게 된다.<br><br>잘해주는 것은 본전심리가 작용한다. 잘해주는 것은 분명 끝이 있다. 내가 잘하는 만큼 상대도 잘해주기를 원하게 된다. 잘해준다는 생각이 들면 상대에게 당당해진다.<br><br>하지만 사랑하는 것은 그 자체로 이미 충만한 마음이 든다. 상대가 아니라 내 사랑에 당당해진다. 물론 사랑하는 것 역시도 상대의 사랑을 갈구하게 되지만, 그것은 준만큼 받으려는 본전심리라기보다는 사랑받고 싶은 마음의 발로이다.<br><br><b>댓가 없이 하는 사랑을 즐기라</b><br>레바논의 작가 칼릴 지브란의 유명한 저서 &lt;예언자&gt; 중에는 결혼에 대한 이런 대목이 있다. 「...서로 사랑하라. 그러나 사랑에 구속되지는 말라...그대들의 마음을 주라. 그러나 서로가 지니지는 말라...함께 서라. 그러나 너무 가까이 함께 하지 말라...」<br>구속하고 강요하면 더 원하게 되고, 너무 가까이 있으면 상대의 그늘에 덮여 자기 자신을 잃게 된다. 지브란의 말처럼 사랑하는 두 사람은 서로 떨어져 서있는 사원의 기둥들이고, 함께 울리되, 따로 있는 기타줄이다.<br><br>이제부터는 이렇게 사랑해보라. 애인을 내 생활에 끌어들이려고만 하지 말고, 내가 애인의 생활에 끼어들려고만 하지 말고, 두 사람은 서로 떨어져서 각자 생활하는 개개인이라는 것을 인정하고, 혼자만의 시간을 존중해주는 것이다. ‘내가 얼마나 잘하는데..’하며 티내지 말고, 말없이, 댓가 없이 하는 사랑을 즐기는 것이다.<br><br>그렇게 하면 두 사람이 받치고 있는 사랑이라는 사원은 흔들림 없이 서있을 것이고, 두 개의 기타줄은 아름다운 선율을 만들어낼 것이다.<br>이웅진 대표는 결혼정보회사 선우의 CEO로 우송정보대학 웨딩이벤트학과 겸임교수를 지냈으며, 현재 한국결혼문화연구소 소장을 겸임하고 있습니다. <br>			 ]]> 
		</description>
		<category>즐거운 삶과 여유</category>

		<comments>http://dbakidd.egloos.com/1273204#comments</comments>
		<pubDate>Sat, 27 Dec 2008 15:21:16 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ DeadLock Test ]]> </title>
		<link>http://dbakidd.egloos.com/1249045</link>
		<guid>http://dbakidd.egloos.com/1249045</guid>
		<description>
			<![CDATA[ 
  <div style="FONT-SIZE: 9pt; FONT-FAMILY: 1031840_9"><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10">-- Session #1</span></p><p>&nbsp;</p><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10">BEGIN TRAN</span></p><blockquote dir="ltr" style="MARGIN-RIGHT: 0px"><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10">UPDATE pubs.dbo.sales SET qty=0</span></p><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><span style="FONT-FAMILY: b09a649611cf2dc402c0deb0#7c0d00">UPDATE pubs.dbo.titles SET price=0</span></span></p></blockquote><p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10">ROLLBACK TRAN</span></p><p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"></span>&nbsp;</p><p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"></span>&nbsp;</p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><span style="FONT-FAMILY: b09a649611cf2dc402c60340#7c0d00">-- Session #2</span></span></p><p>&nbsp;</p><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><span style="FONT-FAMILY: b09a649611cf2dc402c60340#7c0d00">BEGIN TRAN</span></span>&nbsp;</p><blockquote dir="ltr" style="MARGIN-RIGHT: 0px"><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><span style="FONT-FAMILY: b09a649611cf2dc402c60340#7c0d00">UPDATE pubs.dbo.titles SET price=0</span></span>&nbsp;</p><p><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><span style="FONT-FAMILY: b09a649611cf2dc402c5b9b0#7c0d00">UPDATE pubs.dbo.sales SET qty=0</span></span></p></blockquote><p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><span style="FONT-FAMILY: b09a649611cf2dc402c60340#7c0d00">ROLLBACK TRAN</span></span></p><p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"></span>&nbsp;</p></span></div>			 ]]> 
		</description>
		<category>나두 먹고 살자</category>

		<comments>http://dbakidd.egloos.com/1249045#comments</comments>
		<pubDate>Wed, 17 Dec 2008 01:23:35 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 성능 모니터링 툴의 권장 수치 ]]> </title>
		<link>http://dbakidd.egloos.com/1247489</link>
		<guid>http://dbakidd.egloos.com/1247489</guid>
		<description>
			<![CDATA[ 
  <div style="FONT-SIZE: 10pt; FONT-FAMILY: 994265_10"><p>성능 모니터링 툴의 권장 수치 [출처:http://databaser.net/]</p><p><br>-----------<br>디스크 튜닝<br>-----------<br>[RAID 0]<br>Physical Disk: Disk Reads/sec + Disk Write/sec / Disk count &lt; 100<br><br>[RAID 1]<br>Physical Disk: Disk Reads/sec + (2 * Disk Write/sec) / 2 &lt; 100<br><br>[RAID 10]<br>Physical Disk: Disk Reads/sec + (2 * Disk Write/sec) / Disk count &lt; 100<br><br>[RAID 5]<br>Physical Disk: Disk Reads/sec + (4 * Disk Write/sec) / Disk count &lt; 100<br><br>Physical Disk: Avg. Disk Queue Length <br>:Avg. Disk Queue Length/Disk Count &lt; 2<br><br>Physical Disk: Avg. Disk sec/Read &lt; 15 msec<br>Physical Disk: Avg. Disk sec/Write &lt; 12 msec<br><br>-----------<br>메모리 튜닝<br>-----------<br>Memory: Available MBytes(1MB 1048576Btye)<br>:프로세스가 실제 사용할 수 있는 메모리양<br><br>Memory: Pages/sec<br>:디스크에서 메모리로 Page in되는 초당 페이지수<br>이수치가 많다면 SQL Server에 많은 메모리가 할당된 것임.<br>다른 응용프로그램이 실행되기 위해 페이징발생 우려.<br>아래의 Stolen Pages와 같이 확인<br><br>SQL Server: Buffer Manager: Stolen Pages<br>:캐시로부터 제거된 페이지수<br><br>SQL Server: Memory Manager: Total Server Memory(KB)<br>:SQL Server가 할당한 전체 메모리양<br><br>SQL Server: Memory Manager: Procedure Cache Pages<br>:컴파일된 쿼리와 저장 프로시저를 저장한 Cache의 페이지수<br><br>SQL Server: Buffer Manager: Free Page<br>:SQL Server가 사용할 수 있는 페이지 수 <br>5MB이상이어야 함. 5MB이하이면 메모리 부족.<br><br>SQL Server:&nbsp; Buffer Manager: Buffer Cache Hit Ratio<br>:90 이상이어야 함<br><br>Process: Working Set<br>:프로세스 내의 스레드가 최근에 사용한 적이 있는 메모리 바이트수<br>프로세스가 더이상 실행되지 않는데 워킹 셋이 줄지 않으면 프로세스가<br>메모리를 해제하지 않는 것임(메모리 추가)<br><br>Process: Page Faults/sec<br>:프로세스가 Cache Hit하지 않은 페이지수<br><br>-------------<br>프로세스 튜닝<br>-------------<br>Process: % Processor Time &lt; 100<br><br>System: Process Queue Length<br>:프로세서를 얻기위해 프로세서 큐에서 대기한 스레드 수<br>2 * 프로세스수 &lt; Process Queue Length<br><br>System: Context Switches/sec &lt; 10000<br><br>----<br>기타<br>----<br>SQL Server: General Statistics: User Connections<br>:SQL Server의 현재 연결 수 <br><br>SQL Server: Locks: Lock Timeouts/sec<br>:Lock Time out에 걸린 잠금 수<br><br>SQL Server: Locks: Lock Waits/sec<br>:잠금대기 요청수<br><br>SQL Server: Number of Deadlocks/sec<br>:데드락 잠금 수<br>SET DEADLOCK_PRIORITY LOW 설정으로 SQL Server가<br>데드락 에러(1205) 반환<br><br>SQL Server: Memory Manager: Memory Grants Pending<br>:메모리를 사용하기 위해 대기하고 있는 프로세스 수<br><br>SQL Server: Memory Manager: Target Server Memroy(KB)<br>:SQL Server가 사용할 수 있는 전체 메모리양<br><br>SQL Server: Memory Manager: Total Server Memory(KB)<br>:SQL Server가 사용하고 있는 전체 메모리양<br><br>SQL Server: Database: Log Flush Waits/sec<br>:Log Flush를 대기하는 데이터베이스 커밋수<br><br>SQL Server: Database: Percent Log Used<br>:Log File의 증가, 잘림을 볼 수 있다. <br></p></div><br/><br/>tag : <a href="/tag/SQL" rel="tag">SQL</a>,&nbsp;<a href="/tag/모니터링" rel="tag">모니터링</a>,&nbsp;<a href="/tag/성능" rel="tag">성능</a>			 ]]> 
		</description>
		<category>나두 먹고 살자</category>
		<category>SQL</category>
		<category>모니터링</category>
		<category>성능</category>

		<comments>http://dbakidd.egloos.com/1247489#comments</comments>
		<pubDate>Tue, 16 Dec 2008 10:10:22 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 영원하리라 상상했던 영원을 잃었다. ]]> </title>
		<link>http://dbakidd.egloos.com/1247267</link>
		<guid>http://dbakidd.egloos.com/1247267</guid>
		<description>
			<![CDATA[ 
  <p>영원하리라 상상했던 영원을 잃었다.</p><p>한 가닥 끈나플을 잡고 아슬아슬 한발 한발 내딛던 시간이 끝났다.</p><p>돌아갈 수도 없겠거니와 돌아 갈 맘이 들지 않는다.</p><p>그렇게도 되뇌여 고뇌했던 기억이 사실이 되었다.</p><p>무엇을 얻었고 또 잃었는가...</p><p>이제는 두려워질때도 됐으련만 무엇이 붙들고 있는걸까</p><p>불꺼진 어둔 방이 싫었던 그리고 찬바람 가득차있는 내 방이 싫어서</p><p>붙들었던것만은 아니었다.</p><p>의심과 오해로 그리고 상충으로 ... 눈물과 상처로 얼룩진 원망과 미움의 결실</p><p>그것이 우리의 사랑이었나 보다.</p><p>좋았던 기억은 지워진지 오래요 그 기억을 끄집어 내려 노력해도<br><br>너역시 나역시 변함을 기대하기란 너무도 많은 상처속에 파묻혔나 보다<br><br>Bye~ 영선</p>			 ]]> 
		</description>
		<category>즐거운 삶과 여유</category>

		<comments>http://dbakidd.egloos.com/1247267#comments</comments>
		<pubDate>Tue, 16 Dec 2008 08:14:33 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 힘듦의 안부  ]]> </title>
		<link>http://dbakidd.egloos.com/1245197</link>
		<guid>http://dbakidd.egloos.com/1245197</guid>
		<description>
			<![CDATA[ 
  <p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">힘듦은 언제나 안부를 묻지 않는다.&nbsp;&nbsp;</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">적어도 내게는 찾아올 때에는 아무 기척없이 찾아오곤 하더라.</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">나의 힘듦이 너의 행복인것이냐 묻고 싶다.</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">날 이렇게 힘들게 하면 너는 힘들지 않더냐 뭐가 그리도 부족해 더 무엇을&nbsp;네게&nbsp;</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">내어주어야 넌 나를 힘듦으로 부터 자유롭게 해줄 것이냐</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">정말 묻고싶다. 하지만 넌 들으려 하지 않고 시선주려 하지 않는다.</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">그래 세상의 모든 잘못이 내가 원인이고 보잘것 없는 내 인생이라 할 지언정</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">너에 대한 사랑앞에 무릎꿇고 흐느껴 우는 모습이 안스럽지도 않더냐</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">난 너의 모든 힘듦을 내가 감싸 안으려는데 그것조차도 네게 사치로 보이더냐&nbsp;</span><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">&nbsp;</span></p><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'">진정 너의 정신을 알 수 없고 알아낼 수 없어 답을 모르겠기에 난 또 이리 좌절 하였다. </span><div class="autosourcing-stub"><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"></span></div><p><span style="FONT-SIZE: 100%; FONT-FAMILY: '돋움','Dotum'"></span></p>			 ]]> 
		</description>
		<category>즐거운 삶과 여유</category>

		<comments>http://dbakidd.egloos.com/1245197#comments</comments>
		<pubDate>Mon, 15 Dec 2008 10:51:54 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 거리에서 ]]> </title>
		<link>http://dbakidd.egloos.com/1245196</link>
		<guid>http://dbakidd.egloos.com/1245196</guid>
		<description>
			<![CDATA[ 
  <p>거리에서</p><p>너와난 얼마나 가까이 있을까</p><p>다가가는 나와 멀어지는 너와</p><p>다가옴이 겨운 나와 멀어짐에 익숙한 너와</p><p>좁히려 좁히려 둘 중 하나는 애를 쓰는듯</p><p>느껴지지 않는 너와 부족한 나와</p><p>너와난 얼마의 거리를 두고 있는 것일까.</p><p>&nbsp;</p><p>힘듦의 안부 처럼 </p><p>처음에서의 나처럼 그리도 우리도</p><p>여느 평범한 그들과 그이들 처럼</p><p>함께하기엔 너무도 먼 거리를 두고 있는 것일까</p><p>&nbsp;</p><p>너의 힘듦과 내가 감싸안으려 함이</p><p>언제나 초라함이 느껴지지 않을 만큼만</p><p>너의 생각에 서고 너의 가슴을 누리고자</p><p>또다시 거리가 먼 내&nbsp;눈을 따뜻히 하고 있구나... <div class="autosourcing-stub"></div><p></p>			 ]]> 
		</description>
		<category>즐거운 삶과 여유</category>

		<comments>http://dbakidd.egloos.com/1245196#comments</comments>
		<pubDate>Mon, 15 Dec 2008 10:50:59 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ SQL Compilation ]]> </title>
		<link>http://dbakidd.egloos.com/1234887</link>
		<guid>http://dbakidd.egloos.com/1234887</guid>
		<description>
			<![CDATA[ 
  During compilation, the compiler expands the statements by including the relevant <br>constraints, triggers, and cascading actions that have to be carried out during the <br>statement execution.<br><br>If the compiled batch contains invocations of other stored procedures or functions <br>and their plans are not in the cache, the stored procedures and functions are recursively <br>compiled as well.<br><br>처리순서<br>Execution Plan이캐쉬에있으면쿼리를곧바로수행한다<br>실행계획이없으면, Batch를Compile하여Query plan을만든다.<br><br>Compile 단계는Parsing과Binding 과정을거치게된다.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;Parsing : 구문분석<br>&nbsp;&nbsp;&nbsp;&nbsp;Binding : Schema 정보 확인<br><br>Parsing is the process of checking the syntax and transforming your SQL batch into&nbsp;<br>a parse tree.<br><br>Parsing 단계에서는 테이블 이름이나 컬럼 이름에 사용할 수 없는 문자가 있는지 등을 체크 한다.&nbsp;<br>Where절에 사용된 컬럼이 FROM에있는 테이블에 있는지를 체크 하지는 않는다.&nbsp;<br>이 작업은 Binding 단계에서 수행 한다.<br><br>Binding 단계에서는 요청한 작업이 수행 가능한지 체크 한다.<br>For example, while a query including FROM A JOIN B may be parsed successfully,&nbsp;<br>binding will fail if A is a table and B is a stored procedure.<br><br>Optimization이 컴파일의 마지막 단계이며, 집합 기반의 비절차적인 쿼리(Nonprocedural)를&nbsp;<br>절차 적인 문장(Procedure)으로만든다.<br>			 ]]> 
		</description>

		<comments>http://dbakidd.egloos.com/1234887#comments</comments>
		<pubDate>Thu, 11 Dec 2008 05:25:09 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Algebrizer ]]> </title>
		<link>http://dbakidd.egloos.com/1234857</link>
		<guid>http://dbakidd.egloos.com/1234857</guid>
		<description>
			<![CDATA[ 
  <strong>&nbsp;&nbsp;Parse tree를 입력으로 받아 처리하여 query processor tree라는 결과를 만들냄<br></strong><br><strong>SQL Server 2005의새로운컴포넌트</strong><br><br><strong>Binding is its most important function<br></strong><br><strong>&nbsp; The algebrizer replaces the normalizer in SQL Server 2000<br></strong><br><strong>Operator Flattening</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;Stack over-flow 방지<br><br><strong>Name Resolution</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;catalog information에서Name resolution 작업<br><br><strong>Type Derivation</strong><br>			 ]]> 
		</description>
		<category>나두 먹고 살자</category>

		<comments>http://dbakidd.egloos.com/1234857#comments</comments>
		<pubDate>Thu, 11 Dec 2008 05:10:39 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ SQL Reference Site ]]> </title>
		<link>http://dbakidd.egloos.com/1232597</link>
		<guid>http://dbakidd.egloos.com/1232597</guid>
		<description>
			<![CDATA[ 
  <a href="http://www.sqlmag.com/"><p>SQL Magazine</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<a href="http://www.databasejournal.com/features/mssql/">Database Journal</a> <br><br><a href="http://sqlblog.com/blogs/kalen_delaney/">Kalen Delaney</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <a href="http://www.sql-server-performance.com/">SQL Server Performance</a><br><br><a href="http://blog.naver.com/visualdb/">필라넷 김정선님 블로그</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://optimizer.tistory.com/">한국MS 한기환님 블로그</a><br><br><a href="http://technet.microsoft.com/ko-kr/sqlserver/bb331794(en-us).aspx">SQL Server Best Practices</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://msdn.microsoft.com/en-us/library/ms130214(SQL.90).aspx">SQL Server Developer Center</a><br><br><a href="http://www.sqlcommunity.com/">MS SQL Svr. Community World Wide</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.sqlleader.com/">SQL Leader</a></p>			 ]]> 
		</description>
		<category>On the Line</category>

		<comments>http://dbakidd.egloos.com/1232597#comments</comments>
		<pubDate>Wed, 10 Dec 2008 08:37:34 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
	<item>
		<title><![CDATA[ What Query Plans are in SQL Server's Memory?  ]]> </title>
		<link>http://dbakidd.egloos.com/1229820</link>
		<guid>http://dbakidd.egloos.com/1229820</guid>
		<description>
			<![CDATA[ 
  <span xmlns="">&nbsp;<p><span style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana">Written by <a href="http://www.sqlteam.com/author/bill-graziano"><strong><span style="COLOR: #225588">Bill Graziano</span></strong></a> on <strong>25 July 2007</strong> </span><span style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana">Tagged with <a href="http://www.sqlteam.com/tag/memory-tuning"><span style="COLOR: #225588">Memory Tuning</span></a><br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">SQL Server memory is primarily used to store data(buffer) and query plans(procedure cache). <br>In this article I'll show how much memory is allocated to the procedure cache (RAM). <br>I'll explain how to determine what plans are in the cache and how often they're used.<br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">SQL Server stores the procedure cache in 8KB data pages.&nbsp;<br>You can use the dynamic management view sys.dm_os_memory_cache_counters <br>to provide a summary of how the cache is allocated using this query:<br><br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Lucida Console">SELECT TOP 6<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEFT([name], 20) as [name],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEFT([type], 20) as [type],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[single_pages_kb] + [multi_pages_kb] AS cache_kb,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[entries_count]<br>FROM sys.dm_os_memory_cache_counters <br>order by single_pages_kb + multi_pages_kb DESC<br><br><br><br>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cache_kb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entries_count<br>-------------------- --------------------&nbsp; -------------------- --------------------<br>SQLPlans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CACHESTORE_SQLCP&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;669880&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9613<br>Object Plans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CACHESTORE_OBJCP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;97<br>Bound Trees&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CACHESTORE_PHDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3288&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;63<br>SchemaMgr Store&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USERSTORE_SCHEMAMGR&nbsp;&nbsp; 2544&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br>mssqlsystemresource&nbsp;&nbsp;USERSTORE_DBMETADATA&nbsp; 2080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;241<br>sqlteam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USERSTORE_DBMETADATA&nbsp; 728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;302<br>. . . . .<br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">On the server that hosts SQLTeam.com this query actually returns 75 rows.&nbsp; <br>The server has 2GB of RAM with 1GB allocated to SQL Server 2005 Express Edition.&nbsp; <br>This article will focus on the first three rows in this query.&nbsp; These are:<br></span></p><ul><li><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">CACHESTORE_OBJCP. These are compiled plans for stored procedures,&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;functions and triggers. </span><span style="FONT-SIZE: 12pt; FONT-FAMILY: Times New Roman"><br></span><li><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">CACHESTORE_SQLCP.&nbsp; These are cached SQL statements or batches&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that aren't in stored procedures, functions and triggers.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This includes any dynamic SQL or raw SELECT statements&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sent to the server. </span><br><li><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">CACHESTORE_PHDR.&nbsp; These are algebrizer trees for views, constraints and defaults.&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An algebrizer tree is the parsed SQL text that resolves the table&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and column names. </span><br></li></ul><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><p class="docText"><span class="docEmphStrong"><strong>Algebrizer trees</strong>.</span> The query optimizer does not directly act on raw query text;<br>it needs a more structured input. The Algebrizer's job is to produce an <span class="docEmphasis">algebrizer tree</span>, <br>which represents the logical structure of a query. As part of this process, the Algebrizer <br>performs tasks like resolving table, column, and variable names to particular objects in the<br>database. <br>It also determines the data types of any expressions in the query. In SQL Server 2000, <br>what I call an algebrizer tree may also be referred to as a <span class="docEmphasis">normalized tree</span> or a <span class="docEmphasis">parse tree</span>. <br>Because algebrizer trees are used only during query compilation,<br>&nbsp;they are usually not cached. <br>After all, what's the point of caching an algebrizer tree once you have a compiled plan <br>that you can reuse for any subsequent executions? Algebrizer trees for views, defaults, <br>and constraints, however, are an exception to this rule.<br>They are cached because a view may be referenced by many different queries. <br>Caching the view's algebrizer tree prevents SQL Server from repeatedly having to parse <br>and algebrize the view every time another query is compiled that references the view.<br><br></p><p><br>Notice that there are very few compiled plans for stored procedures (CACHESTORE_OBJCP).&nbsp;<br>This should work out to about one plan per active stored procedure on the server.&nbsp; <br>Also notice that there are lots and lots of plans for dynamic SQL&nbsp; on the server (CACHESTORE_SQLCP).&nbsp; <br>The forum software on the site doesn't use stored procedures.&nbsp;<br>The SQL statements it generates go into the SQL plan cache.<br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">You can monitor the number of data pages in the plan cache using Performance Monitor <br>(PerfMon) using SQLServer:Plan Cache object with the Cache Pages counter.&nbsp; <br><br>There are instances for SQL Plans (CACHESTORE_SQLCP), Object Plans (CACHESTORE_OBJCP) and Bound Trees (CACHESTORE_PHDR).<br><br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">We can see individual cache entries by using the <a href="http://msdn2.microsoft.com/en-us/library/ms187404.aspx"><span style="COLOR: #225588">sys.dm_exec_cached_plans</span></a> <br>dynamic management view.<br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Lucida Console"><br>SELECT usecounts, cacheobjtype, objtype, plan_handle<br>FROM sys.dm_exec_cached_plans<br><br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <br><br>usecounts&nbsp;cacheobjtype&nbsp;&nbsp;&nbsp;objtype&nbsp;&nbsp;plan_handle<br>---------&nbsp;-------------- -------&nbsp; ---------------------------------------------------<br>23133&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x05000600E969C702B861712D000000000000000000000000<br>6193&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Adhoc&nbsp;&nbsp;&nbsp;&nbsp;0x060005009D7DB935B841F141000000000000000000000000<br>6192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Trigger&nbsp;&nbsp;0x05000500E9DB0F6BB8E13359000000000000000000000000<br>6192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0500050047E57235B8C1560F000000000000000000000000<br>6097&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Adhoc&nbsp;&nbsp;&nbsp;&nbsp;0x06000500992FE330B8C16E59000000000000000000000000<br>6082&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Adhoc&nbsp;&nbsp;&nbsp;&nbsp;0x06000500EFE7B508B861CD0D000000000000000000000000<br>5818&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Trigger&nbsp;&nbsp;0x050005003FB5C870B8614559000000000000000000000000<br>4864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Prepared&nbsp;0x06000500F264B12FB8412F2B000000000000000000000000<br>4850&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Prepared&nbsp;0x0600050017A8CC01B8812B48000000000000000000000000<br>3385&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled Plan&nbsp;&nbsp;Proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x05000500099CB87DB801A449000000000000000000000000<br>884&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Parse Tree&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;View&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x0500FF7FC1010000C800130D000000000000000000000000<br>. . . . .<br><br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">This query lists the most used query plans.&nbsp;<br>In includes plans for stored procedures, adhoc or dynamic SQL, triggers, prepared SQL and views.<br>If we want to see the SQL associates with these plans like need to use <br>the <a href="http://msdn2.microsoft.com/en-us/library/ms181929.aspx"><span style="COLOR: #225588">sys.dm_exec_sql_text</span></a>&nbsp;dynamic management function like this:<br><br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Lucida Console">select TOP 100<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objtype, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.size_in_bytes,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEFT([sql].[text], 100) as [text]<br>from sys.dm_exec_cached_plans p<br>outer apply sys.dm_exec_sql_text (p.plan_handle) sql<br>ORDER BY usecounts DESC<br><br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <br><br>objtype size_in_bytes&nbsp;&nbsp;text<br>-------&nbsp;-------------&nbsp;&nbsp;---------------------------------------------------------Proc&nbsp;&nbsp;&nbsp;&nbsp;172032&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE PROC [dbo].[subtext_GetSingleEntry]....<br>Adhoc&nbsp;&nbsp; 24576&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT F_PRIVATEFORUMS, F_SUBJECT, F_PASSWORD_NEW ....<br>View&nbsp;&nbsp;&nbsp; 73728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE VIEW [dbo].[sqlteam_Article_View] AS...<br>Proc&nbsp;&nbsp;&nbsp; 4251648&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE PROCEDURE [BMP_proc_RetrieveBannerFromZoneSite]...<br>Proc&nbsp;&nbsp;&nbsp; 425984&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATE PROC [dbo].[sqlteam_Article_Read_ByPageName]...<br><br><br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana">I manually pulled a few rows from the result set to highlight the type of results this<br>query generates.&nbsp;<br><br>Notice that the compile query plans are BIG.&nbsp; One listed in over 4MB.&nbsp; <br>There many of them that are roughly 400KB.&nbsp; <br>If you do a little math on the first result set in this article you'll see the average SQL plan<br>&nbsp;is just under 70KB and the average stored procedure plan is 145KB.&nbsp;<br>SP. tend to encapsulate more complex statements so that doesn't surprise me.<br></span></p><p><span style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"><br>This should give you enough information to go through your query plans and see what's <br>being used, what's rarely used and how much space they take up.<br></span></p></span>			 ]]> 
		</description>
		<category>내 껍니다!!</category>

		<comments>http://dbakidd.egloos.com/1229820#comments</comments>
		<pubDate>Tue, 09 Dec 2008 07:44:52 GMT</pubDate>
		<dc:creator>JeFFreY</dc:creator>
	</item>
</channel>
</rss>
