본문 바로가기

Program/MSSQL

MSsql 버젼 확인 쿼리 select @@version select serverproperty('Productversion') 더보기
mssql 쿼리를 이용한 mysql limit 기법... not in 을 where 절에 줘서 만드는 것 보다 실행속도는 빠르다고 함. [개념] mysql 처럼 중간에서 짤라낼순 없다는 단점을 안고 있지만 그런저런 쓸만하다. 한페이지에 보이려는 글의 갯수가 10개일때 두번째 페이지에서 보여줘야 할 글은 11부터 20까지이다. 그럴경우... 1. 먼저 글을 20개를 뽑아낸다. 2. 원래 정렬하려고 했던 것과는 반대로 역정렬한다. 3. 10개를 뽑아낸다.(뒤에서 거꾸로 10개를 뽑아냄과 같다.) 4. 이를 다시 원래 정렬방식으로 정렬한다. [쿼리 예] SELECT * FROM ( SELECT TOP 10 * FROM ( SELECT TOP 20 * FROM tb_zip ORDER BY zipcode ) a ORDER BY zipcode desc ) b ORDER .. 더보기
MSSQL 쿼리 샘플 내가만든 쿼리 (2중 쿼리) ============================= SELECT IMSI.CBTID AS '아이디', IMSI.CBTCNT AS '회', hist.listeningScore, hist.structureScore, hist.readingScore, hist.score FROM testhistory hist, (SELECT a.id CBTID, MAX(b.testID) CBTCNT FROM kor_cbt4 a LEFT JOIN testhistory b ON a.id = b.id GROUP BY a.id) IMSI WHERE hist.id = IMSI.CBTID AND IMSI.CBTCNT = hist.testID ============================= '#####.. 더보기
MSSQL-쿼리팁 INSERT, UPDATE INSERT ... SELECT INSERT INTO #TABLE1(AAA,BBB,CCC) SELECT AAA,BBB,CCC FROM #TABLE2 UPDATE .... FROM UPDATE #TABLE1 SET AAA=B.AAA FROM #TABLE1 A, #TABLE2 B WHERE A.IDX=B.IDX AND B.BBB='' UPDATE #TABLE1 SET VALUE=TEMPTB.NDATE FROM (SELECT getdate() AS NDATE) AS TEMPTB) UPDATE ... TOP UPDATE #TABLE1 SET STATE = '00' FROM (SELECT TOP 10 au_id FROM #TABLE1 ORDER BY au_name) AS X WHERE #TABLE1.au_id =.. 더보기
페이징 성능 향상 기법 MSSQL 쿼리 ORCLE이 정말 좋은 RDB라는 것을 알게 하는 것이 바로 페이징 기법일거라 생각되네요. MySQL도 내부적으로 페이징이 가능한 쿼리를 지원해주지만 MSSQL은 최근 2005버전까지도... 좋은 페이징 기법을 소개하지 못하고 있는 것 같네요. 성능 좋은 페이징 기법이 공개된 것이 있기도 하지만... 초심자에게 쉽지 않은 쿼리들인 것 같습니다. 이에 조금 쉽게... 어떻게 하면 성능이 향상되는지를 설명해 보려고 합니다. 아래의 내용은 온라인상에서 바로 작성하는 내용이고 맞춤법등이 틀릴 수 있기 때문에 copy해서 사용하지 마시기 바랍니다. 개념을 잡는 정도로 활용하시면 좋을 것 같습니다. MS SQL의 페이징 기법의 키는 TOP 키워드입니다. #1. TOP과 클러스터드 인덱스 SELECT TOP 10 I.. 더보기