'Etc'에 해당되는 글 115건

  1. SQL MDF, LDF 파일 수정한 날짜가 변경되지 않아요
  2. SQL Unplugged 2013 - 발표자료 다운로드
  3. Merge Bug 진짜 당했다..
  4. query wait
  5. 데이타베이스 모델링 sample
  6. 추적 플래그 정리중
  7. 로그 내용 확인 방법
  8. 병렬 Plan 테스트를 위한 -P 옵션 설정
  9. Page Fault
  10. [펌] MySQL 링크드 서버 구성하기

   

아는 분으로 부터 MDF 파일의 수정한 날짜가 변경되지 않는다고 문의가 왔습니다. MDF,LDF 파일이 변경 될 때에는 아래와 같이 참고하면 된다. (추가, V3 등 바이러스 탐지 프로그램이 잡지 못하도록 MDF, LDF 폴더는 검사에서 제외 시킬 것!)

   

This is correct behaviour.  The modified dates change when SQL Server closes the files (SQL Server shut down or the database is detached), or when the file is grown (either automatically or manually).  All other times, SQL Server essentially bypasses the file system when performing the writes, and so the modified dates aren't updated.

   

  1. SQL Server 종료 또는 Database 분리
  2. 파일 증가(자동 또는 주기적으로)

   

원본 위치 <http://social.msdn.microsoft.com/Forums/sqlserver/en-US/b7db6744-cd7b-42b5-a84e-5e511a5e8e59/mdf-ldf-files-last-modified-date-not-increasing-as-expected?forum=sqldisasterrecovery>

'Etc' 카테고리의 다른 글

SQL MDF, LDF 파일 수정한 날짜가 변경되지 않아요  (0) 2013.11.22
SQL Unplugged 2013 - 발표자료 다운로드  (0) 2013.10.29
Merge Bug 진짜 당했다..  (0) 2013.08.31
query wait  (0) 2013.08.30
데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03


올려도 되는지 모르지만 일단 올려 봅니다^^ 공유해달라고 하시는분들이 많으시네요^

본 메일은 2013/10/28 기준으로 2013/10/16 에 진행된 본 세미나에 등록하시거나 참석하신 분들께 보내는 발신 전용 메일입니다. 수신을 원하지 않으시면 여기 를 누르시고 수신 거부 하기 원하는 부분에 check 한 후 ‘저장’을 클릭하시면 됩니다. 그러나 지금 수신거부를 하셨어도, 이미 발송 대기중인 메일은 받으실 수 있습니다.
주소: 서울특별시 강남구 대치동 892번지 포스코센터 서관 5층 한국마이크로소프트(유) (우편번호 135-777)
사용권에 대한 고지 사항개인정보취급방침 및 청소년보호정책문의처




'Etc' 카테고리의 다른 글

SQL MDF, LDF 파일 수정한 날짜가 변경되지 않아요  (0) 2013.11.22
SQL Unplugged 2013 - 발표자료 다운로드  (0) 2013.10.29
Merge Bug 진짜 당했다..  (0) 2013.08.31
query wait  (0) 2013.08.30
데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03

Merge Bug 진짜 당했다..

http://sqlblog.com/blogs/paul_white/archive/2010/08/04/another-interesting-merge-bug.aspx
http://www.sqlperformance.com/2013/02/t-sql-queries/another-merge-bug

Tip on using caution with MERGE - Aaron Bertrand
http://www.mssqltips.com/sqlservertip/3074/tip-on-using-caution-with-merge/ 

Bug는 언제나 존재한다... but 나에게 올줄이야~ ㅡ.ㅡ


-- ===================================================================
-- Merge Test
-- Update : 
-- Update Date : 2013.09.02
-- Desc : Merge를 사용하는 SQL에 이상 현상 발견 
--
--		http://www.sqlperformance.com/2013/02/t-sql-queries/another-merge-bug
		http://sqlblog.com/blogs/paul_white/archive/2010/08/04/another-interesting-merge-bug.aspx

	

-- ===================================================================
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
GO

DECLARE @Target
TABLE   (
        row_id  INTEGER NOT NULL PRIMARY KEY,
        value   INTEGER NOT NULL
        );
 
DECLARE @Delta
TABLE   (
        row_id  INTEGER NOT NULL PRIMARY KEY,
        delta   INTEGER NOT NULL
        );
 
-- Existing records (1 & 3)
INSERT  @Target
        (row_id, value)
VALUES  (1, 1),
        (3, 3),
		(5, 3);

 
 -- 비정상 수행
MERGE   @Target T
USING  ( SELECT * FROM @Target WHERE row_id = 2  ) AS D (  row_id, delta )	-- ##. ROW COUNT가 0일 경우(NULL) 
        ON  D.row_id = T.row_id
WHEN    MATCHED THEN
        UPDATE SET T.value += D.delta
WHEN    NOT MATCHED THEN 
        INSERT VALUES (D.row_id, D.delta)
OUTPUT  D.row_id,
        $action,
        DELETED.value AS old_value,
        INSERTED.value AS new_value;

SELECT * FROM @Target;

-- 정상 수행
MERGE   @Target T
USING  ( SELECT 2, 3   ) AS D (  row_id, delta ) 
        ON  D.row_id = T.row_id
WHEN    MATCHED THEN
        UPDATE SET T.value += D.delta
WHEN    NOT MATCHED THEN 
        INSERT VALUES (D.row_id, D.delta)
OUTPUT  D.row_id,
        $action,
        DELETED.value AS old_value,
        INSERTED.value AS new_value;

SELECT * FROM @Target;


'Etc' 카테고리의 다른 글

SQL MDF, LDF 파일 수정한 날짜가 변경되지 않아요  (0) 2013.11.22
SQL Unplugged 2013 - 발표자료 다운로드  (0) 2013.10.29
Merge Bug 진짜 당했다..  (0) 2013.08.31
query wait  (0) 2013.08.30
데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03

query wait

http://technet.microsoft.com/ko-kr/library/ms175463.aspx
정렬이나 해시처럼 메모리를 많이 사용하는 쿼리를 실행하면 실행에 필요한 충분한 메모리가 확보될 때까지 쿼리가 대기


USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE ;
GO
EXEC sp_configure 'query wait', 7500 ;
GO
RECONFIGURE;
GO


추천하지 않은 옵션이라고 하는 군..


'Etc' 카테고리의 다른 글

SQL Unplugged 2013 - 발표자료 다운로드  (0) 2013.10.29
Merge Bug 진짜 당했다..  (0) 2013.08.31
query wait  (0) 2013.08.30
데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03
로그 내용 확인 방법  (0) 2013.05.29

http://www.databaseanswers.org/data_models/index.htm

이야 좋다~ 이런거야~~ ㅎ.ㅎ

'Etc' 카테고리의 다른 글

Merge Bug 진짜 당했다..  (0) 2013.08.31
query wait  (0) 2013.08.30
데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03
로그 내용 확인 방법  (0) 2013.05.29
병렬 Plan 테스트를 위한 -P 옵션 설정  (0) 2013.05.23

추적 플래그 정리중

http://msdn.microsoft.com/en-us/library/ms188396.aspx

>> 시작옵션

http://msdn.microsoft.com/en-us/library/ms190737.aspx
여기 있는 링크 보면서 정리좀 해보자. http://cafe.naver.com/sqlmvp/665



Trace flag

Description

Scope

IsStartUp

836

버퍼 풀에 대한 최대 서버 메모리 옵션 사용
 

하만철님 정리 : http://cafe.naver.com/sqlmvp/3922

BUF ARRAY를 위해 1G당 8M의 메모리가 요구 된다.

Global

2373

Memory before and after deriving properties and rules (verbose)

  

  

3023

Trace Flag is turned on WITH CHECKSUM option is applied automatically for a backup.

http://www.sqlservercentral.com/blogs/sqlandme/2013/01/15/sql-server-enabling-backup-checksum-with-trace-flag-3023/

  

  

3226

Logging of successful database backup messages to the SQL Server Error log

에러로그에 백업 성공 기록 비활성화

Global

3502

Checkpoint 시작과 종료시 에러로그에 기록 옵션

  

  

3604

결과를 클라이언트(SSMS)에 출력하기 위해

  

  

7352

Final query tree

  

  

7357

Unique hash optimization used

  

  

8605

Converted tree

  

  

8606

Input, simplified, join-collapsed, and normalized trees

  

  

8607

Output tree

  

  

8608

Initial memo

  

  

8615

Final memo

  

  

8675

Optimization stages and times

  

  

8609

Task and operation type counts

  

  

8619

Apply rule with description

  

  

8620

Add memo arguments to 8619

  

  

8621

Rule with resulting tree

  

  

8649

the cost overhead of parallelism to 0

force parallel plan choice regardless of the DOP-based cost changes

http://sqlblog.com/blogs/joe_chang/archive/2013/04/08/hyper-threading-performance.aspx

http://connect.microsoft.com/SQLServer/feedback/details/714968/provide-a-hint-to-force-generation-of-a-parallel-plan

  

  

8666

For SQL Server 2012, turn trace flag 8666 so we can examine the statistics being used by the plans in the cache                

http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/plan-cache-effects-when-dropping        

  

  

9292

쿼리 컴파일(재컴파일)시에 관심을 가진 통계 정보를 알려줍니다.

이 경우 통계 헤더 정보만을 읽어들인다고 하네요.

  

  

9204

실제 계획을 선택하기 위해 통계정보 내용 전체를 읽어 들인 대상을 알려준다고 합니다.

통계정보에 포함된 열의 분포나 밀도 정보 등을 이용 예상 행 수를 알아낸다고 하네요.

  

  

  

  

  

  

  

  

  

  

important_trace_flags_that_every_dba_should_know-victor_isakov.p

TRACE FLAGS - 2012.pdf


참고 링크


'Etc' 카테고리의 다른 글

query wait  (0) 2013.08.30
데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03
로그 내용 확인 방법  (0) 2013.05.29
병렬 Plan 테스트를 위한 -P 옵션 설정  (0) 2013.05.23
Page Fault  (0) 2013.05.15

로그 내용 확인 방법


원본링크 : http://m.blog.daum.net/partsofmemory/43

   참 잘 정리해 두셨네....
  아,, 내 머리는 왜 이렇게 바보게 되냐 ㅠㅠ.. 머리 속에 지우개가 있나봐. ㅠㅠ


1. dbcc log
2. fn_dblog : 현재 사용중인 트랜잭션 로그의 내용만을 확인할 수 있다.
3. fn_dump_dblog : 로그 백업 파일의 내용을 확인 할 수 있다.

-- 현재 데이타베이스의 모든 트랜잭션 로그 출력
select * from ::fn_dblog( null, null)

관련 링크



'Etc' 카테고리의 다른 글

데이타베이스 모델링 sample  (0) 2013.07.17
추적 플래그 정리중  (0) 2013.07.03
로그 내용 확인 방법  (0) 2013.05.29
병렬 Plan 테스트를 위한 -P 옵션 설정  (0) 2013.05.23
Page Fault  (0) 2013.05.15
[펌] MySQL 링크드 서버 구성하기  (0) 2013.04.30

병렬 Plan 테스트를 위해서는 시작 매개변수 -P32 추가해서 Processor수를 32개로 변경할 수 있다. . 내 PC 쿼드 코어라 4개 밖에 안 보인다. 절대 테스트 환경에서만 설정할 것!!

(SQL2012 Dev x64).

   

시작 매개변수 주는 방법

   

PC환경 (쿼드 코어라 4개 CPU로 보이죠?)

   

Glenn님의 진단쿼리를 바탕으로 현재 내 PC의 CPU수 체크하는 DMV로 확인한 결과이다. 논리 CPU 개수를 32개로 보이죠? 알아서 변경해주네요^^

옵티마이져가 병렬여부 결정하기 위한 값은 cost threshold for parallelism 값의 기준으로 병렬로 실행할지 시리얼로 플랜할지 결정한다. 기본은 5이다.

'Etc' 카테고리의 다른 글

추적 플래그 정리중  (0) 2013.07.03
로그 내용 확인 방법  (0) 2013.05.29
병렬 Plan 테스트를 위한 -P 옵션 설정  (0) 2013.05.23
Page Fault  (0) 2013.05.15
[펌] MySQL 링크드 서버 구성하기  (0) 2013.04.30
DAC 포트 변경 방법  (0) 2013.04.19

Page Fault


정말 배울게 많은 것 같다~

아직도 멀었다는 느낌이 많이 드네~



http://social.technet.microsoft.com/Forums/ko-KR/windowsserverko/thread/1c95e6bd-755d-4570-a069-1e19b3de45e3


Page Fault = Hard Fault + Soft Fault 값의 합산입니다.

                   

                   1. Soft Fault 는 Working Set 이 아닌 물리적 메모리상에 요청하는 페이지가 있기 때문에

                       메모리를 액세스하면 해결됩니다. 즉 Performance에 별로 영향이 없습니다.( Not DISK ) 

               

                       그런 이유인지 Soft Fault는 성능카운터가 없습니다 :-)

                   

                   2. Hard Fault 는 요청하는 페이지가 메모리상에 없기때문에 디스크에 segment를

                      요청하고 Memory 와 DISK에 따르는 DISK I/O와 전환때문에 퍼포먼스저하를

                      일으킵니다. 메모리상에 요청하는 페이지가 다 있다면 Page/sec이 발생하지 않겠지요..

 

 

SQL서버는 잘돌아간다면 :-)   많은양의 소프트폴트를 발생합니다

 

Pages / Sec = Hard Faults 값입니다 즉 DISK I/O를 필요로 합니다.

이 값이 높다면  Hard Faults 값에 의존하는 Application 이나 쿼리를 의심해볼 필요가 있습니다.

악성쿼리에의한 스캔으로 DISK I/O 를 발생하면 극도로 낮은 퍼포먼스를 경험하게 됩니다.

 

 

;; Pages /Sec 과 PF Delta , Physical Disk  Queue Length 값을 모니터링하시기 바랍니다.

 


http://ms-abhay.blogspot.kr/2008/02/understanding-memory-issues-through.html


The Sub counters for memory counter are: Page Faults/sec, Page Reads/sec, Page Writes/sec, Pages Input/sec, Pages Output/sec, Available bytes and nonpaged pool bytes.

The Sub counters for Process counter are: Page Faults/sec, working set, Private Bytes and Page File Bytes

So, % Soft page faults = ((Page fault/sec - Pages input/sec) x 100)/Page faults/sec


http://msdn.microsoft.com/ko-kr/library/ms176018.aspx


메모리 부족 상태를 모니터링하려면 다음 개체 카운터를 사용하십시오.

  • 메모리: Available Bytes

  • 메모리: Pages/sec

Available Bytes 카운터는 현재 프로세스에 사용할 수 있는 메모리의 바이트 수를 나타냅니다. Pages/sec 카운터는 하드 페이지 폴트 때문에 디스크에서 가져오거나 작업 집합 내의 디스크 여유 공간에 쓴 페이지 수를 나타냅니다.

Available Bytes 카운터 값이 작으면 컴퓨터 전체 메모리가 부족하거나 응용 프로그램이 메모리를 해제하지 않는다는 의미입니다. Pages/sec 카운터의 비율이 높으면 페이징이 과도하다는 의미입니다. 디스크 작업의 원인이 페이징이 아닌지 확인하려면 Memory: Page Faults/sec 카운터를 모니터링하십시오.

컴퓨터에 사용 가능한 메모리가 충분하더라도 페이징 및 그로 인한 페이지 폴트 비율은 낮은 것이 일반적입니다. Microsoft Windows VMM(Virtual Memory Manager)은 SQL Server 및 다른 프로세스의 작업 집합 크기를 줄일 때 이러한 프로세스에서 페이지를 가져옵니다. 이 VMM 작업으로 인해 페이지 폴트가 발생할 수 있습니다.SQL Server나 다른 프로세스가 과도한 페이징의 원인인지 확인하려면 SQL Server 프로세스 인스턴스의 Process: Page Faults/sec 카운터를 모니터링하십시오.

과도한 페이징을 해결하는 방법은 Windows 운영 체제 설명서를 참조하십시오.

'Etc' 카테고리의 다른 글

로그 내용 확인 방법  (0) 2013.05.29
병렬 Plan 테스트를 위한 -P 옵션 설정  (0) 2013.05.23
Page Fault  (0) 2013.05.15
[펌] MySQL 링크드 서버 구성하기  (0) 2013.04.30
DAC 포트 변경 방법  (0) 2013.04.19
SQL 관련 총 정리 집합??  (0) 2013.04.16

http://blog.naver.com/PostView.nhn?blogId=logix21c&logNo=10088775810

http://www.packtpub.com/article/mysql-linked-server-on-sql-server-2008

'Etc' 카테고리의 다른 글

병렬 Plan 테스트를 위한 -P 옵션 설정  (0) 2013.05.23
Page Fault  (0) 2013.05.15
[펌] MySQL 링크드 서버 구성하기  (0) 2013.04.30
DAC 포트 변경 방법  (0) 2013.04.19
SQL 관련 총 정리 집합??  (0) 2013.04.16
주요 trace flag  (0) 2013.03.25