2011. 4. 15. 10:54

Database 트렌젝션 로그 줄이기

DB 트렌젝션 로그 줄이기
-- 2000용
--BACKUP LOG VALLY_SERVER WITH TRUNCATE_ONLY
--DBCC SHRINKFILE(로그이름,1)

-- 2008용
-- 일단 DB Recovery모델을 full 에서 simple로 변경하여야 한다
select name,recovery_model_desc from sys.databases
Alter database DB이름 SET Recovery simple

select name,size from sys.database_files
DBCC SHRINKFILE (N'DB이름_log' , 1)



-- 2008용 테이블별 용량확인쿼리
SELECT CONVERT(VARCHAR(30), MIN(O.NAME)) AS TABLENAME, LTRIM(STR(SUM(RESERVED) * 8192.0 / 1024.0 / 1024.0, 15,0)) AS TABLESIZE
FROM SYSINDEXES I INNER JOIN SYSOBJECTS O ON (O.ID = I.ID)
WHERE I.INDID IN (0, 1, 255) AND O.XTYPE = 'U'
GROUP BY I.ID
2008. 6. 30. 20:27

서브쿼리 안쪽에서 Order by를 쓸경우

그런 경우가 없는것이 좋은것이고,
되도록 없게 가야 하겠지만, 부득이하게 쓰게 될 경우가 있다.
SQL Server에서는 서브쿼리에 order by를 못쓰게 오류가 나오는데, 이때는  order by가 들어가야 하는 쿼리에
Top을 100%로 지정해 주면 해결 가능하다

-- 오류발생
Select aaa,bbb
(
     Select aaa,count(cccc) as ddd from tblTest  group by aaa order by ddd
)  asdf

-- 해결
Select aaa,bbb
(
     Select top 100 percent aaa,count(cccc) as ddd from tblTest group by aaa order by ddd
)  asdf


물론, 성능이나 그런거 일단 접어두고 어쩔수 없는 경우에만 생각할것.
(성능에 대해선 확인해 보지 않았음)

2008. 5. 7. 11:09

오늘날자에 해당하는 주의 월요일, 금요일 날자 가지고 오기

오늘 날자에 해당하는 주에 월요일 날자와 금요일 날자를 가지고 오는 Select 쿼리

Select dateadd(dw, 2-Datepart(dw,getdate()),getdate()),dateadd(dw, 6-Datepart(dw,getdate()),getdate())


- 제한사항 :
1. 시스템 설정이 일요일이 1번으로 되어 있어야 함
2. 시간은 알아서 띠어 낼것