Web Application에서 사용하면 좋다.



System.Diagnostics.Debug.WriteLine("LogContents");

반응형

'Programming > C#' 카테고리의 다른 글

[C#] 날짜 변환 및 비교  (0) 2017.09.21
[C#] 문자열 인코딩 변환 (EUC-KR, UTF-8)  (0) 2017.09.20
[C#] 람다 식 간략한 예시  (0) 2017.07.03
[C#] Nullable type  (0) 2017.04.24
[C#] 게시된 IIS의 경로 찾기  (0) 2017.03.28

실행계획(Execution plan) 분석하는 방법.



프로시저와 같은 디비 쿼리를 짜다보면 성능에 대한 의문이 듭니다.

이때 간단하게 확인해 볼 수 있는방법이 실행계획을 통한 확인입니다.



1. 예시 쿼리


SELECT *

FROM emp t1, dept t2

WHERE t1.dept_no = t2.dept_+no

AND not exists

       ( SELECT *

          FROM salgrade

          WHERE sal BETWEEN 1000 AND 2000)



2. 예시쿼리에 따른 실행 계획

 IDP_IDOperation Ojbect name
 0 

 SELECT STATEMENT

 
 1 0

     FILTER

 
 2 1

         NESTED LOOPS

 
 3 2

             TABLE ACCESS FULL

EMP 
 4 2

             TABLE ACCESS BY ROWID

DEPT
 5 4

                  INDEX UNIQUE SCAN

PK_DEPT
 6 1

         TABLE ACCESS FULL

SALGRADE



3. 실행 계획 분석.

A. 가장 먼저 실행되는부분이 가장 아래에 있는 ID가 5번인 INDEX UNIQUE SCAN 부분.

B. ID 5~ 4 단계는 DEPT테이블의 PK INDEx인 PK_DEPT 를 SCAN하여 얻은 ROWID로 DEPT 테이블을 ACCESS 한다.

C. 3번의 EMP 테이블의 ACCESS 방법은 Table Full Scan으로 읽어 4번과 Nested Loop 조인 하는 형식.

D. 다시 Nested Loop 된 결과는 Full Table Scan으로 읽은 SALGRADE 테이블에 의해 Filter 되어 결과가 나오게 된다.



4. 트리 구조로 확인하기.



5. 분석


A. Cost는 낮을수록 좋다.

B. Full Table Scan이 없을수록 좋다.




출처: http://www.jakartaproject.com/board-read.do?boardId=dbtip&boardNo=114193419425900&command=READ&t=1411017575107 


반응형

'Programming > Databse' 카테고리의 다른 글

[PostgreSql] Centos7에서 PostgreSql 설치  (0) 2017.06.15
[PostgreSql] 윈도우서버에서 PostgreSql 외부 접속 허용  (0) 2017.06.14
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17

오라클에서 Table검색시 

대소문자에 상관없이 검색하는 방법

검색결과를 대소문자로 변환하는 방법




UPPER/LOWER

검색결과를 대문자/소문자로 변경해준다.



e.g. 검색결과를 대문자/소문자로 나타내기.


SELECT UPPER(st.someCol) AS someCol

FROM someTable st;


SELECT LOWER(st.someCol) AS someCol

FROM someTable st;



e.g. 대소문자에 상관없이 검색하기.


SELECT *

FROM someTable

WHERE LOWER(someCol) = LOWER(searchKeyword);


SELECT *

FROM someTable

WHERE UPPER(someCol) = UPPER(searchKeyword);

반응형

'Programming > Databse' 카테고리의 다른 글

[PostgreSql] 윈도우서버에서 PostgreSql 외부 접속 허용  (0) 2017.06.14
[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17
[Oracle] ORA-00972  (0) 2017.02.17


ORA-02292

무결성 제약조건이 위배되었습니다 - 자식 레코드가 발견되었습니다.

Constraint violation - child records found



원인

삭제하고자하는 데이터가 다른 테이블의 pk 혹은 fk등 으로 사용되고 있음.



해결

삭제하고자하는 데이터를 사용하는 테이블에서 데이터를 먼저 삭제한다.

Constraint를 수정한다.

반응형

'Programming > Databse' 카테고리의 다른 글

[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] UPDATE  (0) 2017.02.17
[Oracle] ORA-00972  (0) 2017.02.17
[Oracle] Column 정보 수정하기.  (0) 2017.02.17


- contextMenu에서 다양한 타입의 아이템을 설정.




1. 기본 item설정.


items: {

"item1": {name: "Item1"},

"item2": {name: "Item2"}

}


2. text를 입력할 수 있는 text item설정.


items: { 

"Text": { 

name: "Text", 

type: 'text', 

value: "SomeValue", 

events: { 

keyup: function(e) {  

//keyup event 

}


3. Checkbox item설정


items: { 

"cb1" : { name: "Check Box 1", type: 'checkbox', selected: true }, 

"cb2" : { name: "Check Box 2", type: 'checkbox', selected: false } 

}


4. Radio item 설정


items: { 

"Radio1": { name: "Radio1", type: 'radio', radio: 'radio', value: '1'}, 

"Radio2": { name: "Radio2", type: 'radio', radio: 'radio', value: '2', selected: true },

"Radio3": { name: "Radio3", type: 'radio', radio: 'radio', value: '3', disabled: true } 

}


5. Select menu item 설정


items: { 

"SelectMenu": { 

name: "SelectMenu", 

type: 'select', 

options: {1: 'opt1', 2: 'opt2', 3: 'opt3'}, selected: 2 }

 }

}


6. 구분선 추가


items: { sep: "---------" }





반응형

- jqGrid의 컬럼을 숨기고 보여주는 방법.




$(selectorName).showCol(colName);


"selectorName"을 가진 jqGrid의 "colName"을 이름으로 가진 컬럼을 보여주도록 한다.

e.g.

$("#myTable").showCol("ID");

$(".myGrid").showCol("Key");



$(selectorName).hideCol(colName);


"selectorName"을 가진 jqGrid의 "colName"을 이름으로 가진 컬럼을 숨기도록 한다.

e.g.

$("#myTable").hideCol("ID");

$(".myGrid").hideCol("Key");

반응형


1. 특성 픽셀로 길이 조정하기.


$( "#sel_ID" ).selectmenu( "option", "width", 100 );


#sel_ID를 id로 갖고있는 selectmenu의 width속성을 100px로 변경.




2. 내부 텍스트값에따라 자동으로 길이 조절하기.


$( "#sel_ID" ).selectmenu( "option", "width", "auto" );


#sel_ID를 id로 갖고있는 selectmenu의 width속성을 내부 텍스트 길이에 맞춰서 변경.

반응형

서브그리드 확장시키기.


$('#Grid_ID').jqGrid('expandSubGridRow', Row_ID);



Grid_ID에 subGridRowExpanded 가 존재해야함.

Row_ID는 확장의 대상이 되는 Row의 ID를 의미함.


따라서 위의 명령어를 시행하면

Grid_ID를 ID로 갖는 Grid의 Row_ID를 ID로 갖는 Row 아래에 subgrid가 펼쳐진다.


반응형





jQuery("#grid_id").trigger("reloadGrid");


- grid_id를 id로 갖는 jqgrid를 새로고침 한다.

반응형



Row정보 Update하기.



UPDATE #TABLE_NAME#

SET #COL_NAME1# = #UPD_VAL1#,

#COL_NAME2# = #UPD_VAL2#

WHERE #CONDITION#;


Ex)

UPDATE student

SET student_rank = 1,

student_name = 'someName'

WHERE student_key = 23;

반응형

'Programming > Databse' 카테고리의 다른 글

[Database] 실행 계획 분석  (0) 2017.03.17
[Oracle] 대소문자 변환  (0) 2017.03.07
[Oracle] ORA-02292  (0) 2017.03.07
[Oracle] ORA-00972  (0) 2017.02.17
[Oracle] Column 정보 수정하기.  (0) 2017.02.17

+ Recent posts