이 블로그 검색

2011년 7월 22일 금요일

대용량 데이터베이스에서 효과적인 과거 데이터 삭제

8. 과거데이터 효과적으로 삭제하기

# DELETE FROM ~ WHERE ~ 와 같은 방법으로 데이터를 삭제하지 않는다.
(LOCK, LOGGING에대한 문제가 발생하며 위와 같은 쿼리 실행중 취소를 하면 롤백 또한 길어진다.)

# 일반적으로 인덱스가 잡히지 않은 테이블에 적재 하는 것이 빠르다.
 (인덱스 없는 테이블에 적재 > 인덱스 생성 > 테이블 대체(테이블명을 수정하여 원래의 테이블로)

# 데이터를 삭제하는 방법으로 루프문 내에 delete top (1000) 과 같은 쿼리를 반복 수행하는 방법도 있다.

# 삭제여부와 같은 컬럼을 두어 삭제대상 데이터에 삭제여부 컬럼을 업데이트 한 후
빠른처리를 하지 않아도 될 시간에 해당 데이터를 삭제하는 것도 하나의 방법이다.
(ex>새벽에 일배치가 완료된 후 여유가 되는시간에 삭제)


Forcefully Rename a SQL Server Database

SQL Server 강제로 디비명 변경


작업을 수행하기 위해 데이터베이스를 배타적으로 잠글 수 없습니다. 
라는 메세지가 나오면서 Rename이 되지 않을 때 아래와 같이 해결할 수 있다. 


ALTER DATABASE [old_name]
 
 SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [old_name]
 
 MODIFY NAME = [new_name]
GO
ALTER DATABASE [new_name]
 SET MULTI_USER
GO

2011년 7월 3일 일요일

IIS 7 file download 404 error

web.config 파일에 아래와 같이 다운로드할 파일의 확장자를 추가해준다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <fileExtensions allowUnlisted="true" >
          <remove fileExtension=".ZIP" />
          <add fileExtension=".ZIP" allowed="true"/>

        </fileExtensions>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

STUFF & FOR XML

DECLARE @SAMPLE TABLE (ID INT, CODE VARCHAR(3))
INSERT @SAMPLE
SELECT 290780, 'LT' UNION ALL
SELECT 290780, 'AY' UNION ALL
SELECT 290781, 'ILS' UNION ALL
SELECT 290780, 'AY'





SELECT
 DISTINCT S1.ID,
 STUFF((SELECT DISTINCT TOP 100 PERCENT ',' + S2.CODE FROM @SAMPLE AS S2 WHERE S2.ID = S1.ID ORDER BY ',' + S2.CODE FOR XML PATH('')), 1, 1, '') AS CODES
FROM @SAMPLE AS S1
ORDER BY S1.ID







SELECT
 DISTINCT S1.ID
, STUFF((SELECT TOP 100 PERCENT ',' + S2.CODE FROM @SAMPLE AS S2 WHERE S2.ID = S1.ID ORDER BY ',' + S2.CODE FOR XML PATH('')), 1, 1, '') AS CODES
FROM @SAMPLE AS S1
ORDER BY S1.ID






SELECT
 DISTINCT S1.ID
, STUFF((SELECT ',' + S2.CODE FROM @SAMPLE AS S2 WHERE S2.ID = S1.ID FOR XML PATH('')), 1, 1, '') AS CODES
FROM @SAMPLE AS S1

ORDER BY S1.ID

SSAS Clear Cache

XMLA command for clearing the Analysis Services cache
<ClearCache xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <
Object
>
    <
DatabaseID>Adventure Works DW</DatabaseID
>
  </
Object
>
</
ClearCache>