728x90

먹보고릴라님 | 쿼리 | 2013-10-11 18:17:22




먹보고릴라 2013-10-11 18:17:55

SELECT serialno AS AgentID, computername, IPADDR, MACADDR,
(
SELECT H.HWValue FROM avwNodeHW H, avwNode N1
WHERE N.nodeID = N1.nodeID and N1.NodeID = H.nodeID and
H.HWBaseID = (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName = 'cpuNameDetail')
) AS CPU,
(
SELECT H.HWValue FROM avwNodeHW H, avwNode N1
WHERE N.nodeID = N1.nodeID and N1.NodeID = H.nodeID and
H.HWBaseID = (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName = 'mainMemory')
) AS Memory,
(
SELECT H.HWValue FROM avwNodeHW H, avwNode N1
WHERE N.nodeID = N1.nodeID and N1.NodeID = H.nodeID and
H.HWBaseID = (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName = 'hdd1Size')
) AS HDD1,
(
SELECT H.HWValue FROM avwNodeHW H, avwNode N1
WHERE N.nodeID = N1.nodeID and N1.NodeID = H.nodeID and
H.HWBaseID = (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName = 'hdd2Size')
)AS HDD2
FROM avwNodeDetail N JOIN ATBNODE M on N.NODEID=M.NODEID


DB2 SQLDBX에서 사용 하며
에러 메시지는 
SQL0811N 스칼라 fullselect, SELECT INTO문 또는 VALUES INTO문의 결과가 두 행 이상입니다. SQLSTATE=21000
이러하게 에러 메시지가 출력 됩니다

이부분에 있어 어떻게 하는 방법이 있을까요?


먹보고릴라 2013-10-11 22:05:01
SELECT M.serialno AS AgentID, computername, IPADDR, MACADDR, H.HWValue AS CPU, H.HWValue AS MEMORY, 
H.HWValue AS HDD1, H.HWValue AS HDD2 
FROM avwNodeHW H, avwNode N1, avwNodeDetail N JOIN ATBNODE M on N.NODEID=M.NODEID
WHERE N.nodeID = N1.nodeID and N1.NodeID = H.nodeID and
H.HWBaseID in (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName in ('cpuNameDetail','mainMemory'))

이렇게 수정하니 mainmemory에 cpu 이름이 같이 나와버리네요.. 
혹시 아시는 부분 있으시나용?

pajama 2013-10-11 22:14:24
안녕하세요

두가지를 확인해보시기 바랍니다.

1. 조건절에서 HWBaseID 컬럼에 아래와 같이 값을 취하는 부분이 있습니다.
H.HWBaseID = (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName = '...
'=' 이기 때문에 SELECT 하는 결과 레코드가 한개 이상이면 sql0811n 오류가 발생합니다.

2. 그리고 CPU, Memory, HDD1, HDD2 컬럼값을 가져오는 스칼라서브쿼리(SELECT H.HWValue ...) 결과 레코드가 하나 이상일때도 오류가 발생합니다.

pajama 2013-10-11 22:24:20
댓글 다는 사이에 댓글을 달아주셨네요

H.HWBaseID in (SELECT HWBaseID FROM avwHWBase WHERE HWTypeName in ('cpuNameDetail','mainMemory'))
HWBaseID 컬럼에 cpu memory에 해당하는 ID를 모두 가져왔고 H.HWValue가 다 같은값으로 나올텐데요


먹보고릴라 2013-10-13 20:25:55
To. pajama 님
댓글에 감사합니다. 

두번째 댓글에서 달아주신 내용과 같이 cpumemory에 대핟ㅇ하는 ID를 가져왔는데 HWValue에서 mainMemory도 가져올려 하면
group by절로 하여 사용하면 될까요?



728x90
728x90

활발이님 | 기타 | 2013-10-08 12:57:58


tablespace에 관련해 질문 드립니다.

create tablespace의 문장에 아래와 같이 있는데

   .-MANAGED BY--AUTOMATIC STORAGE--| size-attributes |---------------------.   
>--+------------------------------------------------------------------------+-->
   '-MANAGED BY--+-SYSTEM--| system-containers |--------------------------+-'   
                 '-DATABASE--| database-containers |--| size-attributes |-'    

managed by system    - sms
                     database - dms
방식의 관리의 개념은 익히었는데

MANAGED BY--AUTOMATIC STORAGE 에 대해 질문드립니다.
1. automatic storage정의와 어떨때 사용하는 옵션인지
2. 다른 방식과의 차이점과 장점이 무엇인지 
3. 사용하기 위해 고려해야할 사항

질문 드립니다.




pajama 2013-10-08 22:16:19
1. automatic storage정의와 어떨때 사용하는 옵션인지
automatic storage는 sms와 dms형식이 혼재된 관리방식입니다.
일반테이블 스페이스는 DMS, 임시테이블 스페이스는 SMS로 생성합니다.


2. 다른 방식과의 차이점과 장점이 무엇인지
차이점이라면 테이블 스페이스를 생성할 때 스토리지 경로를 명시할 필요가 없다는 점입니다.
사용하기 쉽다는 점이 최대장점입니다. 

아래 링크는 방식별 비교표입니다.
http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0055446.html


3. 사용하기 위해 고려해야할 사항
처음에 데이터베이스를 생성할 때 테이블 스페이스가 생성될 스토리지 경로를 주어야합니다.
데이터베이스를 생성할 때 옵션을 주지 않아도 기본적으로 automatic storage 관리방식을 사용합니다.

활발이 2013-10-10 16:51:13
답변 감사합니다 
데이터베이스 관리 프로그램이 자동으로 데이터베이스와 연결된 모든 스토리지 경로에 컨테이너를 작성합니다 라는데 
여기서 automatic storage는 데이터가 저장되는 곳이 모든 컨테이너 디렉토리, 파일, 디바이스의 경로로 작성을 한다는 말인가요?
또한 default 경로는 어디인가요..?

pajama 2013-10-10 17:44:25
데이터베이스를 만들때(create database) 데이터베이스를 저장할 스토리지 경로를 지정합니다. 경로가 여러개가 될수도 있고요. 여러개를 지정하면 테이블스페이스 컨테이너 파일이 분산되어 저장됩니다.

활발이 2013-10-11 16:47:16
automatic storage는 경로를 명시할 필요가 없다고 했는데 데이터베이스 내에 있는 공간만 사용하는 건가요?
데이터를 저장할 공간을 db 밖에 따로 만들어서 관리할순 없나요?
(경로 명시 하지 않을시 $home/인스턴스명/NODE0000/db명/T0000005/C0000000.LRG 이런 경로로 되어 있네요)

pajama 2013-10-11 21:58:07
예를 들어 데이터베이스를 처음 생성할 때 create database sample on /DB1,/DB2 라고 했다면(스토리지 공간 명시),
테이블스페이스를 만들면 아래처럼 두개의 파일이 생깁니다.
create tablespace tbs1
/DB1/인스턴스명/NODE0000/db명/T0000005/C0000000.LRG
/DB2/인스턴스명/NODE0000/db명/T0000005/C0000000.LRG

데이터 저장공간을 /DB1,/DB2외 별도 경로로 지정하고 싶으시다면 dms,sms 형식으로 아래처럼 지정합니다.
create tablespace tbs3 managed by database using (file '/DB3/tbs3.dbf' 10M)
create tablespace tbs4 managed by system using ('/DB4')

답변이 제대로 되었는지 모르겠습니다



728x90
728x90

aegispro님 | 튜닝 | 2013-10-05 02:00:48


테이블 디자인은 아래와 같구요. (밑줄이 primary keys입니다.)
ET_STAT_DTL_TB (ET_NUMET_STAT_SEQ_NUM, ET_STAT_TS, ET_STAGE_CD, ET_STAT_CD, ET_RSN_CD, ET_ASGN_USER_ID_NUM)

원하는 결과는 ET_STAGE_CD별로 Count를 얻고 싶어요
카운드 코드
100      01
88        02
99        03
등등등..

(1) SELECT COUNT(ET_STAGE_CD), ET_STAGE_CD

FROM (
        SELECT DTL.ET_NUM, DTL.ET_STAGE_CD, DTL.ET_STAT_SEQ_NUM, 
        ROW_NUMBER() OVER(PARTITION BY DTL.ET_NUM, DTL.ET_STAGE_CD  ORDER BY                   
        DTL.ET_STAT_SEQ_NUM  DESC) ROWNUM 
        FROM SCHEMA.ET_STAT_DTL_TB DTL 
) X WHERE  ROWNUM = 1 
GROUP BY ET_STAGE_CD

(2) SELECT
COUNT(STAT.ET_STAT_CD), STAT.ET_STAGE_CD
FROM SCHEMA.ET_STAT_DTL_TB STAT
WHERE STAT.ET_STAT_SEQ_NUM =
(
   SELECT
  MAX(STAT_TMP.ET_STAT_SEQ_NUM)
  FROM NCAPRPRD.ET_STAT_DTL_TB STAT_TMP
  WHERE STAT_TMP.ET_NUM = STAT.ET_NUM     
)
GROUP BY STAT.ET_STAGE_CD WITH UR

 
첫번째 질문은 
(1)과 (2)중에서 어느쪽이 성능면에서 더 유리한지요 ? 아니면 별 차이가 없는 지요?

두번째 질문은
(1)과 (2)의 결과물이 다르게 나오는 데...(1) 혹은 (2) 쿼리에 어떠 오류가 있는 지 전문가 분들의 의견을 듣고 싶습니다




pajama 2013-10-06 22:52:37
인덱스나 레코드수 등에 따라 차이는 있겠지만 두번째는 조인이 발생하기 때문에 비용발생이 커질 여지가 있습니다. 실행계획을 보는 것이 확실합니다. 그리고 두번째 쿼리문이 COUNT값이 ET_STAT_CD 컬럼으로 쓰셨는데 ET_STAGE_CD 컬럼을 잘못 쓰신건가요?

aegispro 2013-10-07 11:54:20
예 지적하신대로 ET_STAGE_CD가 맞아요. 제가 잘 이해가 가지 않는 부분은 (1)과 (2)의 결과가 조금 다르다는 것입니다. 
제가 무엇인가를 잘못 이해하고 있는 것인지 ... 몇시간째 고민하고 있는 데 답이 나오지 않아서요. (1)은 정확한 결과를 리턴해 주는 데 (2)는 특정 ET_NUM에 대해서는 아예 blank로 결과값이 나타납니다. 혹시 이부분 
WHERE STAT.ET_STAT_SEQ_NUM =
(
SELECT
MAX(STAT_TMP.ET_STAT_SEQ_NUM)
생략...
에서 문제가 발생할 여지가 있는 지요?

pajama 2013-10-07 17:20:59
죄송합니다. 말씀하신 내용이 좀 헷갈려서요.
결과값이 blank라는 말씀이 max함수값이 null 값이라는 말씀이신가요?

SELECT
MAX(STAT_TMP.ET_STAT_SEQ_NUM)
FROM NCAPRPRD.ET_STAT_DTL_TB STAT_TMP
WHERE STAT_TMP.ET_NUM = STAT.ET_NUM 

max값이 null이라면 테이블 조인 결과세트, 또는 특정 ET_NUM에 해당하는 결과세트가 없다는 의미입니다. (건수 0)

그리고 NCAPRPRD.ET_STAT_DTL_TB 테이블이 SCHEMA.ET_STAT_DTL_TB STAT 테이블과 동일한 테이블인가요?

aegispro 2013-10-07 21:11:12
(1) 예 동일한 테이블 맞아요 그러니까 셀프 Join입니다.
(2) 특정 ET_NUM의 결과가 다를 수 있을 까요 (위 두개의 다른 쿼리가요? 그러니까 Partition BY를 쓰는 것과 사용하지 않는 것)

pajama 2013-10-08 00:18:14
테스트로 데이터를 만들어서 해보았습니다 테이블 데이터타입이나 값은 무작위로 넣었습니다.
우선 첫번째 쿼리에서 PARTITION BY 절에서 ET_NUM과 ET_STAGE_CD 컬럼을 기준으로 정렬을 하셨는데요
서브쿼리에서 조인할때는 ET_NUM 컬럼으로만 조인해서 결과값이 다른 것으로 보입니다.

SELECT
COUNT(STAT.ET_STAGE_CD), STAT.ET_STAGE_CD
FROM SCHEMA.ET_STAT_DTL_TB STAT
WHERE STAT.ET_STAT_SEQ_NUM =
(
SELECT
MAX(STAT_TMP.ET_STAT_SEQ_NUM)
FROM NCAPRPRD.ET_STAT_DTL_TB STAT_TMP
WHERE STAT_TMP.ET_NUM = STAT.ET_NUM
AND STAT_TMP.ET_STAGE_CD = STAT.ET_STAGE_CD
)
GROUP BY STAT.ET_STAGE_CD WITH UR

제가 테스트한 결과로는 이렇게 했을때 동일한 결과가 나왔습니다.

aegispro 2013-10-08 02:12:15
아하 그렇군요. 정확하게 잘못을 지적해 주셨네요. 더 나은 대안이 없다면 성능 문제 때문에 첫번째 쿼리로 가야 할 것 같습니다. 혹시 더 나은 방법을 알고 계시는 지요?

pajama 2013-10-08 22:19:36
쿼리작성은 제가 미진하여 조언드리기가 어렵습니다. 질문주셔서 오히려 제가 공부가 되었네요



728x90
728x90

LOUPOS님 | 튜닝 | 2013-10-04 18:09:30

 

인덱스도 잘타고.. 코스트도 페치하기 전엔 10-20 정도에.. 최종코스트 50정도면 작은거 같은데.. 
리스트뽑아올때 30초씩걸리는 이유 아시는분...(1분걸림..)


해당 테이블 참조를 3개를 참조해서 가져오는건데...
3개다 각각 인덱스 다 잘타고...

다만... 각 테이블 레코드수가 많긴한데.. 2천만건정도...
그중 뽑아올 레코드는 약 200만~300만 레코드...(최대)
(근대 200만건이 많아서 안댄다 그러면....ㅠ)

문제는 레코드수가 많다고 처리속도가 늦는건 DB구조상 인덱스를 잘 타는데 저정도로 느릴수 있나요.. 이걸 개선하려면 어케 해야하나요..

액세스 플랜도 깔끔하니 잘나오고.. 조인도 최소로 조인시켜서 코스트 높게 안잡히는데.... 전체레코드수때문일까요...
범위형 조건이 많긴 한데.. 인덱스 다 타구요... 다만, 범위를 진짜 타이트하게 잡아서 출력레코드를 100만건 이하로 줄이면 1초만에 뽑히는 걸로 보아.. 레코드수 문제가 맞는거 같기도 하고...

DB전문가의 손길을 요합니다...
(진짜 하다하다 안대서.. 여기에 올려봅니다..IBM DB2 메뉴얼 다뒤져가면서 하는중 ㅠ)

 

 

  LOUPOS 2013-10-04 18:17:47  
액세스플렌 이미지 캡쳐 포함시켰습니다...

의심스러운 것은 토드에서 쿼리 수행시에 최초 100만레코드는 3초 정도만에 긁어 오는데 여기서부터 퍼포먼스가 쫙 떨어지면서
150만 레코드 부터는 1000레코드 긁어오는데 3초 이상씩 걸립니다...(동영상찍어서 올려야대나요..ㅋㅋ;;)

이거때문에 메모리나 CPU IO 부분 할당량이 적은가 했는데

메모리 32GB에 DB2 할당량 22GB정도 잡히고.. 실 사용율 CPU 5%도 안됩니다...
저거 다 쓰지도 못하면서 이러네요...(못긁겠으면 하드웨어 팍팍 쓰라고...ㅠ)

답변부탁드립니다 ㅠ
 
 
 
 
  pajama 2013-10-04 22:24:42  
안녕하세요? 실행하는 쿼리에 비해 Cost값이 너무 낮게 나오는것이 이상합니다. 
샘플DB에서 1만건 단순 조회만 해도 Cost값이 300정도 나옵니다.
각 테이블에 대해 통계정보갱신(RUNSTATS) 실행이 최근에 언제 되었는지 확인해보십시오.
 
 
 
 
  LOUPOS 2013-10-07 11:48:55  
으아...그러네요... 리오그 하고 범위설정을 다시했더니
최종적으로 300만 코스가....발생을...하아...

그리고 데이터레코드가 200만건이나 되는데 NL조인 할리가 없죠... 해쉬조인으로 바뀌었네요...
이거 개선 방법이 없을까요?

이곳저곳에서 자분을 구해봐도...
원천데이터(통계적 데이터가 아닌 스트링데이터) 를 불러오는데 그건 당연한거다 이러는데.. 이게 맞나요?
 
 
 
 
  pajama 2013-10-07 16:28:50  
해시조인 성능을 개선하려면 DB파라미터(sortheap, sheapthres) 설정값을 늘려주는 방법이 있습니다.

 

 

115500.png
0.05MB
728x90
728x90

활발이님 | 기타 | 2013-10-04 00:44:03


버퍼풀과 tablespace에 대해 보기 시작하였는데 
옵션이나 값 설명에 이해가 안되는 부분이있어 질문드립니다
4가지네요... 답변 부탁드리겠습니다.

1. inbdefaultbp 버퍼풀의 npages가 bufferpool의 page수를 의미하는 것 같은데 값이 기본으로 -2가 되어있는데 이 의미는?
(SELECT * FROM SYSCAT.BUFFERPOOLS 조회시)

2.tablespace의 pagesize (4k, 8k,16,18) 별로 temporary tablespace를 생성해 주여야 되는데
  만약 8k짜리 tablespace를 만들고 8k짜리 temp tablespace를 만들지 않았을때의 문제는 뭐었이 되는지?
  sql이 수행될떄 임시 저장되는 공간이 없어서 그냥 수행되는 속도의 차이만 문제가 되는지...

3.TABLESPACE 유형에 USER TEMPORARY TABLESPACE가 기본 DEFAULT로 생성되면 USERSPACE1인가요?

4. tablespace의 욥션에 no file system caching와 file system caching 는 어떤 기능인가?




pajama 2013-10-04 01:59:01
1. inbdefaultbp 버퍼풀의 npages가 bufferpool의 page수를 의미하는 것 같은데 값이 기본으로 -2가 되어있는데 이 의미는?
(SELECT * FROM SYSCAT.BUFFERPOOLS 조회시)
npages 값이 -2인 경우는 버퍼풀에 자체 튜닝 기능을 사용중임을 의미합니다. (자동 크기 조정)
http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.admin.perf.doc/doc/t0021635.html


2.tablespace의 pagesize (4k, 8k,16,18) 별로 temporary tablespace를 생성해 주여야 되는데
만약 8k짜리 tablespace를 만들고 8k짜리 temp tablespace를 만들지 않았을때의 문제는 뭐었이 되는지?
sql이 수행될떄 임시 저장되는 공간이 없어서 그냥 수행되는 속도의 차이만 문제가 되는지...

소트나 조인수행시 작업 공간이 없어서 sql수행자체가 되지 않을 수 있습니다. (아래 오류 메시지 참조)
SQL1585N A system temporary table space with sufficient page size does not
exist. SQLSTATE=54048
http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0052067.html


3.TABLESPACE 유형에 USER TEMPORARY TABLESPACE가 기본 DEFAULT로 생성되면 USERSPACE1인가요?
USERSPACE1은 데이터베이스 생성시 자동으로 생성되는 일반 테이블 스페이스입니다.
사용자 임시 테이블 스페이스(USER TEMPORARY TABLESPACE)는 직접생성해야 합니다.


4. tablespace의 욥션에 no file system caching와 file system caching 는 어떤 기능인가?
파일시스템 캐시는 디스크에서 읽어온 데이터를 저장하는 메모리 공간을 의미합니다.
file system caching 옵션을 사용하면 파일시스템캐시에 있는 데이터를 db2의 버퍼풀로 다시 이동시킵니다.
no file system caching 옵션을 사용하면 버퍼풀에 바로 디스크에서 읽어온 데이터를 복사합니다.
파일시스템 캐시는 주로 inline 옵션이 아닌 LOB 데이터나, 임시테이블스페이스 데이터에서 사용합니다.
http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0051304.html
http://www.ibm.com/developerworks/data/library/techarticle/dm-0509wright/
http://www.ibm.com/developerworks/data/library/techarticle/dm-1204concurrent/

활발이 2013-10-04 02:15:55
늦은 시간에 답변주시다니.. 자세한 답변 감사드립니다. 질문 밑에 url도 자세히 살펴보겠습니다~



728x90
728x90

DB는내운명님 | 백업 | 2013-09-27 11:33:27


db2 복원 시, 

백업본으로 restore 후 아카이브 로그로 rollforward를 합니다.

그런데,, 만약 아카이브 로그가 손상이 됬을 경우... rollrforward가 정상적으로 진행이 되나요?

제가 알기로는 로그가 깨져있으면 진행이 되지 않는것으로 알고 있습니다. 

또한 아카이브 로그가 손상되었다면..아카이브 로그 백업 본으로 복원을 하는건가요? 

실제 필드에서는 어떻개 진행을 하고 있나요? 

 아카이브 로그 복원은 어떻게 하나요? 

제가 알고 있는게 맞는건지 조언 부탁 드립니다.




pajama 2013-09-28 01:07:09
아카이브 로그 파일이 손상 되었다면 시점(point-in) 복구를 해야합니다.


728x90
728x90

활발이님 | 기타 | 2013-09-26 22:10:36


이제 막 db2를 시작하는 사람입니다
또한 제목 이외에 몇가지 더 질문 드립니다.
초보적인 질문이지만 답변 부탁드리겠습니다!

1. database에 붙는 application을 list applications 으로 확인을 하는데
 이 application이 어디서 db로 붙은지 확인을 어떻게 하는지 알고 싶습니다.

2. das user를 생성해서 db2admin start/stop 로 시작 및 중지를 하는데요
 제어 센터나 gui도구를 이용해 db2를 운영할때 필요한 특수 인스턴스가 das인데 
 이 인스턴스는 그냥 start 시키면 이 기능이 오토매틱으로 되는건지...
 제어센터 및 도구를 사용하기 위해 어떠한 설정이 필요한지 알고싶습니다

 답변 부탁드립니다.




pajama 2013-09-27 00:46:16
1. list application 명령에서 application id에 클라이언트의 IP가 표시됩니다.
$ db2 list applications

Auth Id Application Appl. Application Id DB # of
Name Handle Name Agents
-------- -------------- ---------- -------------------------------------------------------------- -------- -----
DB2INS97 db2jcc_applica 6747 175.114.54.157.2239.130926153847 SAMPLE 1
DB2INS97 db2bp 6640 *LOCAL.db2ins97.130926144511 SAMPLE 1

상세정보는 아래와 같은 명령으로 확인합니다.
$ db2 get snapshot for application applid 175.114.54.157.2239.130926153847
$ db2pd -db sample -api 6747

2. 제어센터를 사용하실때 db2admin start 이외에 별도로 설정하실 작업은 없습니다.
das는 DB 인스턴스와는 별도로 시작, 종료합니다. 시스템 시작시 자동으로 실행되게 하려면 dasauto명령으로 설정합니다.

활발이 2013-09-27 14:59:45
답볌 감사합니다~ 도움이 되었습니다!



728x90
728x90

care님 | 2013-09-23 17:51:49


안녕하세요. DB2관련하여 문의사항이있어, 질문드립니다.
agent별 CPU사용양을 알 수 있을까요??
db2top 실행시키고 'l'을 누르면 나오는 화면처럼 cpu사용양을 알고 싶습니다.

고수님들 답변 부탁드립니다~^^

감사합니다.




pajama 2013-09-27 01:33:32
질문을 제대로 이해했는지 모르겠습니다만..
db2pd -agents 명령으로 각 에이전트의 프로세스 ID를 확인하실 수 있습니다. top등을 이용해서 cpu 사용량을 확인하시면 되지않을지요

금선생 2013-09-30 10:11:49
9.5 이후에 프로세스가 스레드로 변경되는데 그와 같은 경우 DB내부에서 cpu time을 기준으로 하여 cpu사용량을 봐야 할 것 같은데 어떤식으로
봐야 할지 감이 잡히지 않네요. 혹시 누가 아시는분 있으신지 저도 궁금합니다.

pajama 2013-09-30 22:41:29
델타값으로 보는 방법이 있습니다.
db2pd -edus interval=5 top=5 -repeat 1

이렇게 했을 때 USR(s) SYS(s) 옆에 USER DELTA SYS DELTA 값이 있습니다. 이 값을 참고하시는 방법도 있습니다.



728x90
728x90

DB는내운명님 | 기타 | 2013-09-16 16:25:25


현재 db2 업무를 하고 있는데요. 

db2exfmt를 사용하여 access plan을 확인하고 있는데요...

전체적으로 어떻게 봐야되는지 몰라서요....

어떻게 하면 좀 더 효율적으로 access plan을 분석할수 있나요? 

고수님들의 답변 부탁 드립니다.




pajama 2013-09-27 02:02:27
복잡한 플랜은 딱히 방법은 없다고 생각합니다. db2look으로 통계정보를 테스트 시스템에 복사해서 cost 값이 커지는 구간을 살펴보고 index변경, runstat 수행, 쿼리 변경등으로 테스트하는 방법이 있겠지요


728x90
728x90

DB는내운명님 | 2013-09-07 19:20:37


db2분야에서 업무을 하고 있습니다.

Stored procudure 의 개념에 대해 정확히 알고 싶습니다.

여러 선배님들에게 물어봤지만.. 정확한 대답을 듣지를 못했습니다.

여러 고수님들의 조언 부탁 드립니다.

감사합니다.




pajama 2013-09-08 11:37:34
stored procedure는 비지니스 로직을 sql로 구현한 오브젝트 입니다. 자바나 C, SQL등으로 구현할 수 있습니다. 프로시저를 생성하면 컴파일되어 패키지로 저장이 되는데, 프로시저가 호출될 때 컴파일 된 패키지(섹션)가 실행이 되므로 성능면에서 유리합니다.
데이터에 변경이 많이 일어났을 때는 해당 프로시저에 대한 패키지를 리바인드 해주는 것이 일반적인 관리방법입니다.

현지수 2013-09-23 17:00:30
stored procedure(이하 SP)는 업무처리 프로그램을 DB에서 SQL을 중심으로 구현한 DB object 입니다.
프로그램을 DB에서 처리하므로써 client에서 처리부하가 줄어들고, 데이터를 client로 보내기 위한 네트워크 부하도 줄어드는 장점이 있습니다.
단점으로는 프로그램을 DB와 Application 양쪽에서 구현하기 때문에 유지보수에 어려움이 있고, sp를 구현하는 언어가 DBMS 벤더마다 차이가 있기 때문에 DB에 종속성이 생기므로 sp를 무분별 하게 사용하는 것은 자제하실것을 권고드립니다.



728x90

+ Recent posts