Dev/DBMS
오라클 테이블의 레코드 사이즈 계산을 쉽게하자
newtype
2012. 8. 10. 09:03
오라클 DB 테이블의 레코드 사이즈 계산을 할 필요가 있었다.
구할려고 보니, 데이터 형별로 계산 공식이 틀리다.
쉽게 계산하기 위해 HTML 로 작성해봤다.
사용방법은 DB테이블 Description의 레코드별 사이즈 부분을 TextArea에 붙여 넣고 실행하면 된다.
주요 소스 내용은 아래와 같다.
<head> <title>테이블 레코드 계산</title> <script src="http://code.jquery.com/jquery-1.5.min.js" type="text/javascript" charset="utf-8"></script> <script> /* 계산 공식 출처 http://epoonet.egloos.com/4479971 */ var pTable = [ { type: "char", calc:function(n){ return n; }}, { type: "varchar2", calc:function(n){ return n; }}, { type: "nchar", calc:function(n){ return 2 * n; }}, { type: "nvarchar2",calc:function(n){ return 2 * n; }}, { type: "number", calc:function(n){ return 1+ Math.ceil(n/2); }}, { type: "date", calc:function(n){ return 7; }}, { type: "raw", calc:function(n){ return n; }}, { type: "long", calc:function(n){ return n; }}, { type: "long raw", calc:function(n){ return n; }}, { type: "bfile", calc:function(n){ return 530; }}, { type: "rowid", calc:function(n){ return 6; }}, { type: "timestamp",calc:function(n){ return 13; }} ]; $(document).ready( function(){ $("#DoIt").click(function() { var resultText = ""; var inputText = $("textarea#src").val().toLowerCase().split("\n"); var lineString; var size =0, sum =0; var buf; for(var i=0; i<inputText.length; i++) { size = 0; if ( lineString=$.trim(inputText[i]) ) { for(var j=0; j<pTable.length; j++) { if ( lineString.substr(0, pTable[j].type.length) == pTable[j].type ) { try { size = Number(lineString.split("(")[1].split(")")[0]); } catch (e) { size = 0; } size = pTable[j].calc(size); break; } } } sum += size; resultText += lineString + " : " + size + "<br/>"; } resultText += "<br/><b>sum: " + sum + "</b>"; $("#result").html( resultText ); }); }); </script> <style type="text/css"> * { font-size:12px; font-family:맑은고딕 } </style> </head> <body> <textarea id="src" rows="20" cols="80"></textarea> <br/> <input type="button" value="Do It!" id="DoIt"> <br/> <br/> <span id="result"></span>
직접 실행을 위한 URL은 아래와 같다.
반응형