Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 520건
  WinSxS가 너무 공간을 많이 차지 할때? 
작성일시 : 2009. 2. 20. 22:30 | 분류 : Windows Server/ETC

WinSxS는 호환성 보전을 위하여 버전업 된 DLL 들을 모아 놓는 저장소군요.
그래서 디스크 공간이 부족할 때는 삭제하더라두 크게 문제가 없을 것 같습니다.

하지만 Backup은 받아 두셔야 겠죠??
뭐 섬뜩하게 니 시스템이 부팅 되지 않을꺼라는 애기도 있지만 대체적인 포스팅 내용들을 통해 확인해 보면 삭제해도 시스템을 정상적으로 동작시키는 것에는 큰 문제가 없습니다.

(하지만 Microsoft에서는 해당 디렉토리의 컨텐츠를 삭제하지 말자가 권고 사항입니다.)

아래는 WinSxS에 대한 포스팅 들입니다.

WinSxS를 삭제하기 위해서는 해당 오브젝트에 대한 소유권을 가져온 후 자신의 계정에 풀 컨트롤 권한을 부여 해야 해당 내용들이 삭제가 됩니다.

What is the WINSXS directory in Windows 2008 and Windows Vista and why is it so large?
http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx

Deleting from the WinSxS directory
http://blogs.msdn.com/jonwis/archive/2007/01/02/deleting-from-the-winsxs-directory.aspx

Demystifying the WinSxS directory in Windows XP, Vista and Server 2003/2008
http://blog.tiensivu.com/aaron/archives/1306-Demystifying-the-WinSxS-directory-in-Windows-XP,-Vista-and-Server-20032008.html

|
  SQL Server SP3 and Cumulative update package 1, 2 
작성일시 : 2009. 2. 20. 16:43 | 분류 : SQL Server/Administration

|
  Windows 2008 Clusdisk.sys and Clusnet.sys where is this? 
작성일시 : 2009. 2. 19. 10:33 | 분류 : Windows Server/Cluster

The location of cluster devices were changed in windows 2008.
On the windows 2003, We can found that on the non plug and play devices, but on the windows 2008 it has invalved in it’s original location. for exemple, clusnet is located on network devices and clusdisk is located on system devices.

but i had have some troubles to find it… :)

|
  OS에서 파티션된 Disk는 왜? 클러스터에서 사용할 수 없을까? 
작성일시 : 2009. 2. 12. 12:28 | 분류 : Windows Server/Cluster

MSCS 클러스터는 Disk Letter가 아닌 물리 디스크에 할당된 Signature 정보를 통해 Disk를 관리합니다.
즉 서버에서 본다면 1Device 당 1Drive 가 되어야 할 것이며, 스토리지 입장에서 본다면 최소 1LUN 당 1Dirve 로 제공 되어야 합니다.

즉 서버 측에서는 물리적으로 분리된 Disk 를 사용해야 합니다.
물론 아래 그림에서 로컬 스토리지 역시 분리되어 있지만 로컬 스토리지 의 경우 굳이 분리 하지 않아도 무방합니다.
하지만 공유 스토리지는 MUST Device 하나당 Disk 하나여야 합니다.

디스크 관리

로컬 스토리지
-------------------------------------------------
|||||||||||||||C:|||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||D|||||||||||||||||||||||||||||||||
-------------------------------------------------

공유 스토리지
-------------------------------------------------
||||||||||Q|||||||||||
||||||||||M||||||||||
||||||||||||||||||||||||||S||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||L|||||||||||||||||||||||||||||||||
__________________________________________________

|
  Async_network_io 
작성일시 : 2009. 2. 10. 19:59 | 분류 : SQL Server/Administration

일반적으로 네트워크 성능으로 인해 발생하는 Lock 이슈 입니다.
해당 Lock 은 네트워크에서 모든 데이터를 처리하고 나면 자연스럽게 풀리게 됩니다.

물론 대량의 행을 리턴 하는 Select 문을 실행하다가 중지 할 때 역시 해당 Lock 발생합니다.
이 경우에는 해당 Select문의 종료 까지 시간이 상당히 많이 걸립니다.

이때 sp_who2나 sys.sysprocesses 을 쿼리 하면 아래와 같은 실행 화면을 볼 수 있습니다.

spid kpid blocked waittype waittime lastwaittype
<SPID> 1988 0 0x0063 203 ASYNC_NETWORK_IO
<SPID> 4224 0 0x00BA 546 CXPACKET
<SPID> 148 0 0x00BA 546 CXPACKET
<SPID> 5764 0 0x00BA 1234 CXPACKET
<SPID> 6008 0 0x00BA 718 CXPACKET
<SPID> 3164 0 0x00BA 5093 CXPACKET
<SPID> 268 0 0x00BA 5125 CXPACKET
<SPID> 1760 0 0x00BA 5125 CXPACKET
<SPID> 5704 0 0x00BA 5078 CXPACKET

이 경우에는 다른 SPID의 Lock이 CXPACKET임을 볼 수 있는데, CXPACKET은 병렬 쿼리 실행 시 다른 CPU의 작업 완료를 기다릴 경우 발생합니다. 이는 바로 ASYNC_NETWORK_IO을 기다리고 있음을 의미합니다.

해당 문제에 대한 hotfix는 이미 나와 있습니다. 다만 이 경우에는 최소 SQL 2005 SP2가 설치되어 있어야 합니다.
아래에 설명하는 hotfix 리스트를 받아 설치합니다.

SQL Server 2005 SP2 통합 Hotfix : http://support.microsoft.com/kb/956854/LN/
SQL Server 2005 SP3 통합 Hotfix : http://support.microsoft.com/kb/959195/LN/

출처 : http://support.microsoft.com/kb/960110

|
  How to enable Disk Quota 
작성일시 : 2009. 2. 10. 11:28 | 분류 : Windows Server/ETC

For this job, you can configure it in group policy.
It means it can adjust in the domain level or ou level.

1. Start gpedit.msc
image

2. Moving Disk quotas configuration menu. And configure that
image

|
  Logical Query Processing 01 
작성일시 : 2009. 2. 5. 17:37 | 분류 : SQL Server/Kernel

출처 : Inside Microsoft SQL Server 2005 : T-SQL Querying

굉장히 훌륭한 책임에도 번역서가 없기에 보기 힘든 책이 INSIDE SQL SERVER 시리즈다.
물론 완역은 시간 상 힘들겠지만, 각 내용의 요점 정도로 축약하여 기록하고자 한다.

본인은 SQL Server 초보이기 때문에 내용의 이해에 다소간의 문제가 있을 것으로 예상한다.
즉 완벽한 이해와 오역의 방지를 위하여 책과 함께 봐야 도움이 되리라 생각한다.

SQL Server에서는 쿼리를 어떻게 처리할까?
아래와 같은 Table Customers 와 Orders 을 만들고 간단한 Select query 구문을 처리하는 과정을 통해 SQL Server의 Logical Query Processing을 알아보도록 하자.

Query 구문

select c.customerid, COUNT(o.orderid) as numorders
from customers as c
    left outer join orders as o
        on c.customerid = o.customerid
where c.city='madrid'
group by c.customerid
having COUNT(o.orderid) <3
order by numorders

샘플 데이터 구성 (DDL)
use tempdb
go

create table customers
(
    customerid    char(5)        not null primary key,
    city        varchar(10)    not null
);

insert into customers values ('FISSA', 'Madrid');
insert into customers values ('FRNDO', 'Madrid');
insert into customers values ('KRLOS', 'Madrid');
insert into customers values ('MRPHS', 'Zion');

create table orders
(
    orderid        int        not null    primary key,
    customerid    char(5)    null        references customers(customerid)
);

insert into orders values (1, 'FRNDO');
insert into orders values (2, 'FRNDO');
insert into orders values (3, 'KRLOS');
insert into orders values (4, 'KRLOS');
insert into orders values (5, 'KRLOS');
insert into orders values (6, 'MRPHS');
insert into orders values (7, null);

Step 1 Cartesian Product (Cross Join)
가장 먼저 From 조건을 확인하여 가상의 Table을 만든다. 처음으로 만들어지는 테이블은 customers 와 orders로 조합이 가능한 모든 가능의 수를 조합하여 테이블이 만들게 된다. 즉 M개의 행을 가진 T1 와 N개의 행을 가진 T2가 Join 이 되면 M x N 행을 가진 가상의 테이블이 만들어지게 된다.

VT1
FISSA    Madrid    1    FRNDO
FISSA    Madrid    2    FRNDO
FISSA    Madrid    3    KRLOS
FISSA    Madrid    4    KRLOS
FISSA    Madrid    5    KRLOS
FISSA    Madrid    6    MRPHS
FISSA    Madrid    7    NULL
FRNDO    Madrid    1    FRNDO
FRNDO    Madrid    2    FRNDO
FRNDO    Madrid    3    KRLOS
FRNDO    Madrid    4    KRLOS
FRNDO    Madrid    5    KRLOS
FRNDO    Madrid    6    MRPHS
FRNDO    Madrid    7    NULL
KRLOS    Madrid    1    FRNDO
KRLOS    Madrid    2    FRNDO
KRLOS    Madrid    3    KRLOS
KRLOS    Madrid    4    KRLOS
KRLOS    Madrid    5    KRLOS
KRLOS    Madrid    6    MRPHS
KRLOS    Madrid    7    NULL
MRPHS    zion    1    FRNDO
MRPHS    zion    2    FRNDO
MRPHS    zion    3    KRLOS
MRPHS    zion    4    KRLOS
MRPHS    zion    5    KRLOS
MRPHS    zion    6    MRPHS
MRPHS    zion    7    NULL

Step 2 Applying the ON Filter (Join Condition)
VT1 테이블에서 on c.customerid = o.customerid 확인하여 True 인 절로 VT2 를 생성 한다.

VT2
FRNDO    Madrid    1    FRNDO
FRNDO    Madrid    2    FRNDO
KRLOS    Madrid    3    KRLOS
KRLOS    Madrid    4    KRLOS
KRLOS    Madrid    5    KRLOS
MRPHS    zion    6    MRPHS

Step3 Adding Outer Rows
On Condition에서 제외된 Row 들일지라도 필요할 경우 Outer Join을 통해 가상 테이블에 포함 시킬 수 있다.
즉 이전에 생성된 VT2에 제외된  outer row를 추가하게 된다.

VT3
FISSA    Madrid    NULL    NULL
FRNDO    Madrid    1    FRNDO
FRNDO    Madrid    2    FRNDO
KRLOS    Madrid    3    KRLOS
KRLOS    Madrid    4    KRLOS
KRLOS    Madrid    5    KRLOS
MRPHS    zion    6    MRPHS

Step4 Applying the where filter
Where condition을 확인하여 해당 결과가 True 인 Row들로 이루어진 새로운 테이블을 만든다.
Where 구문과 On 구문의 차이점은 Outer 조인일 때 필터링 이후에 Row가 추가되는냐 않되느냐 이다.
물론 inner 조인의 경우 위의 Step3의 단계를 거치지 않기 때문에 구문이 무의미 한다. 하지만 Outer Join 인 경우 위에서 보는 것처럼 On 조건은 Step3 이전에 Where 조건은 Step3 이후에 적용 되게 된다.

VT4
FISSA    Madrid    NULL    NULL
FRNDO    Madrid    1    FRNDO
FRNDO    Madrid    2    FRNDO
KRLOS    Madrid    3    KRLOS
KRLOS    Madrid    4    KRLOS
KRLOS    Madrid    5    KRLOS

Step5 Grouping
group by c.customerid 조건에 맞춰 그룹핑을 한다. 이때 Select 절에는 Count (Orderid)와 같은 형식의 각 그룹당 하나의 결과만 리턴 하도록 해야 한다.
그리고 만약 Group by all 을 이용할 경우에는 Step4의 Where가 무시되게 된다.
마지막으로 Count() 함수는 NULL도 하나의 값으로 처리하게 되지만 SUM, AVG, MIN, MAX는 해당 연살 칼럼에 NULL이 있을 경우 NULL로 처리하게 된다.

VT5
FISSA    Madrid    NULL    NULL
FRNDO    Madrid    1    FRNDO
            Madrid    2    FRNDO
KRLOS    Madrid    3    KRLOS
            Madrid    4    KRLOS
            Madrid    5    KRLOS

|
  CXPACKET What is this? 
작성일시 : 2009. 1. 13. 22:20 | 분류 : SQL Server/Administration

CXPACKET is waiting for other cpu’s job complete.
IF your query runs parallel, some cpus are complete their job but others are not complete the job.
And CPU will wait the other cpu’s job complete. And it may be a problem.

It doesn’t problem in most conditions.
But if you experience that, you can reduce max degree of parallelism for prevent CXPACKET’s problem.

You can control max degree of parallelism per SP. or you can control it over the database.

This articles are concerned about the CXPACKET.
it may be a better way to solve your performance problems.

http://blogs.msdn.com/craigfr/archive/2006/10/11/introduction-to-parallel-query-execution.aspx
http://bnrg.cs.berkeley.edu/~adj/cs262/Lec_11_5.html
http://blogs.msdn.com/bartd/archive/2006/09/25/deadlock-troubleshooting-part-3.aspx
http://blogs.msdn.com/jimmymay/archive/2008/12/02/case-study-part-2-cxpacket-wait-stats-max-degree-of-parallelism-option-suppressing-query-parallelism-eliminated-cxpacket-waits-liberated-30-of-cpu.aspx

|
 Prev   1   ···   17   18   19   20   21   22   23   ···   65   Next