SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLEシステム手続ã??

SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLEシステム手続ã??を使ã?£ã?¦ã€?表や索引ã?«å‰²ã‚Šå½“ã?¦ã‚‰ã‚Œã?Ÿæœªä½¿ç”¨ã?®é ˜åŸŸã‚’回å?Žã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ 未利用ã?®å‰²ã‚Šå½“ã?¦ã‚‰ã‚Œã?Ÿé ˜åŸŸã?Œå­˜åœ¨ã?™ã‚‹å…¸åž‹çš„ã?ªçжæ³?ã?¯ã€?表ã?‹ã‚‰å¤§è¦?模ã?ªæƒ…å ±ã?Œæƒ…å ±ã?Œå‰Šé™¤ã?•れã?Ÿå¾Œã€?ã??れã?§ç©ºã?„ã?Ÿé ˜åŸŸã‚’使ã?†æƒ…å ±ã?ŒæŒ¿å…¥ã?•れã?¦ã?„ã?ªã?„å ´å?ˆã?§ã?™ã€‚ 既定ã?§ã?¯Derbyã?¯æœªä½¿ç”¨ã?®é ˜åŸŸã‚’基本ソフト(OS)ã?«è¿”å?´ã?—ã?¾ã?›ã‚“。例ã?ˆã?°è¡¨ã‚„索引ã?«å‰²ã‚Šå½“ã?¦ã‚‰ã‚Œã?Ÿãƒšãƒ¼ã‚¸ã?¯ã€?表や索引ã?Œç ´æ£„ã?•れるã?¾ã?§ã?¯åŸºæœ¬ã‚½ãƒ•ト(OS)ã?«è¿”å?´ã?•れã?¾ã?›ã‚“。 SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLEã?«ã‚ˆã‚Šä½¿ã‚?れã?¦ã?„ã?ªã?„領域を基本ソフト(OS)ã?«è¿”å?´ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚

ã?“ã?®ã‚·ã‚¹ãƒ†ãƒ æ‰‹ç¶šã??ã?«ã‚ˆã‚Šã€?三種類ã?®åœ§ç¸®ã‚’SQL表ã?®è¨˜éŒ²ã?•れã?Ÿé ˜åŸŸã?«ã?¦è¡Œã?„ã?¾ã?™ã€‚ ã??ã?®ä¸‰ç¨®é¡žã?¨ã?¯PURGE_ROWSã€?DEFRAGMENT_ROWSã??れã?¨ TRUNCATE_ENDã?§ã?™ã€‚ã?¾ã?ŸSYSCS_UTIL.SYSCS_COMPRESS_TABLE()ã?¨ã?¯ç•°ã?ªã‚Šã€?既存ã?®è¡¨ã?Šã‚ˆã?³ç´¢å¼•ã?Œè¨˜éŒ²ã?•れã?Ÿé ˜åŸŸã? ã?‘を使ã?£ã?¦å…¨å‡¦ç?†ã?Œè¡Œã‚?れã?¾ã?™ã€‚

æ§‹æ–‡

SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(
		IN SCHEMANAME VARCHAR(128),
		IN TABLENAME VARCHAR(128),
		IN PURGE_ROWS SMALLINT,
		IN DEFRAGMENT_ROWS SMALLINT,
		IN TRUNCATE_END SMALLINT )
SCHEMANAME
��引数�VARCHAR(128)型�値を�り�表��るスキーマを指定���。空�値を渡��エラー��り��。
TABLENAME
ã?“ã?®å¼•æ•°ã?¯VARCHAR(128)åž‹ã?®å€¤ã‚’ã?¨ã‚Šã€?表ã?®è¡¨å??を指定ã?—ã?¾ã?™ã€‚文字列ã?¨è¡¨å??ã?¯ã€?大文字å°?文字も一致ã?—ã?¦ã?„ã?ªã?‘れã?°ã?ªã‚‰ã?šã€?"Fred"ã?¨å¼•æ•°ã?«ã?¨ã‚Œã?°ã€?SQLã?®ãƒ¬ãƒ™ãƒ«ã?§ãƒ‡ãƒªãƒŸãƒˆã?•れã?Ÿè­˜åˆ¥å­?ã?®'Fred'ã?¨ã?ªã‚Šã?¾ã?™ã€‚ 空ã?®å€¤ã‚’渡ã?™ã?¨ã‚¨ãƒ©ãƒ¼ã?¨ã?ªã‚Šã?¾ã?™ã€‚
PURGE_ROWS
PURGE_ROWSã?Œ0以外ã?®å€¤ã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?表全体ã?Œä¸€åº¦èµ°æŸ»ã?•れã?¦ã€?表ã?‹ã‚‰å‰Šé™¤ã?¨ã‚³ãƒŸãƒƒãƒˆã?Œå®Œäº†ã?—ã?Ÿè¡Œã?Œå?–り除ã?‹ã‚Œã?¾ã?™ã€‚ã?“ã?†ã?—ã?¦ç©ºã?„ã?Ÿé ˜åŸŸã?¯ã€?以é™?ã?®è¡Œã?®æŒ¿å…¥ã?«ã?¦åˆ©ç”¨ã?§ã??ã?¾ã?™ã?Œã€?表ã?«å‰²ã‚Šå½“ã?¦ã‚‰ã‚Œã?Ÿã?¾ã?¾ã?¨ã?ªã‚Šã?¾ã?™ã€‚ ã?“ã?®ã‚ªãƒ—ションをã?¨ã‚‹å ´å?ˆã?¯è¡¨ã?®å…¨ãƒšãƒ¼ã‚¸ã?Œèµ°æŸ»ã?•れるã?®ã?§ã€?パフォーマンスã?¯è¡¨ã?®ã‚µã‚¤ã‚ºã?«æ­£æ¯”例ã?—ã?¾ã?™ã€‚
DEFRAGMENT_ROWS
DEFRAGMENT_ROWSã?Œ0以外ã?®å€¤ã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?表ã?«ã?‚る行を後方ã?‹ã‚‰å‰?æ–¹ã?«ç§»å‹•ã?™ã‚‹ã€?断片化解消ã?®èµ°æŸ»ã?Œä¸€åº¦è¡Œã‚?れã?¾ã?™ã€‚ ã?“ã?®æ–­ç‰‡åŒ–解消ã?®èµ°æŸ»ã?¯ã€?表ã?®æœ«å°¾ã?«ã?‚るページを空ã?«ã?—よã?†ã?¨ã?—ã?¾ã?™ã€‚ã?“ã?†ã?—ã?¦ã?§ã??ã?Ÿç©ºã?®ãƒšãƒ¼ã‚¸ã?¯ã€?ç¶šã?„ã?¦TRUNCATE_ENDを指定ã?—ã?¦åŸºæœ¬ã‚½ãƒ•ト(OS)ã?«è¿”å?´å?¯èƒ½ã?¨ã?ªã‚Šã?¾ã?™ã€‚ TRUNCATE_ENDを指定ã?™ã‚‹æ™‚ã?¯ã€?DEFRAGMENT_ROWSを指定ã?™ã‚‹äº‹ã‚’ã?Šå‹§ã‚?ã?—ã?¾ã?™ã€‚ DEFRAGMENT_ROWSã?ŒæŒ‡å®šã?•れるã?¨ã€?表ã?®å…¨ä½“ã?Œèµ°æŸ»ã?•れã€?移動ã?—ã?Ÿè¡¨ã?®å…¨è¡Œã?«ã?¤ã?„ã?¦ç´¢å¼•ã?Œæ›´æ–°ã?•れã?¾ã?™ã€‚従ã?£ã?¦å®Ÿè¡Œæ™‚é–“ã?¯è¡¨ã?®ã‚µã‚¤ã‚ºã?«æ­£æ¯”例ã?—ã?¾ã?™ã€‚
TRUNCATE_END
TRUNCATE_ENDã?Œ0以外ã?®å€¤ã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?表ã?®æœ«å°¾ã?«ã?‚る隣接ã?—ã?Ÿãƒšãƒ¼ã‚¸ã‚’基本ソフト(OS)ã?«è¿”å?´ã?—よã?†ã?¨ã?—ã?¾ã?™ã€‚PURGE_ROWSã?¨DEFRAGMENT_ROWSã?®ä¸¡æ–¹ã?‚ã‚‹ã?„ã?¯ç‰‡æ–¹ã‚’å?Œæ™‚ã?«æŒ‡å®šã?™ã‚‹ã?“ã?¨ã?§ã€?処ç?†ã?®å¯¾è±¡ã?¨ã?ªã‚‹ãƒšãƒ¼ã‚¸æ•°ã‚’増やã?™äº‹ã?Œã?§ã??ã?¾ã?™ã€‚ã?“ã?®å‡¦ç?†è‡ªèº«ã?¯è¡¨ã?®èµ°æŸ»ã?¯è¡Œã‚?れã?¾ã?›ã‚“。

SQL�例

US���スキーマ��るCUSTOMER���表を圧縮�る����全��圧縮処�を指定���。
call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('US', 'CUSTOMER', 1, 1, 1);
å?Œã?˜è¡¨ã?®æœ«å°¾ã?«ã?‚る空ã??領域を返ã?™ã?ªã‚‰ã€?å…¨ã?¦ã?®å‡¦ç?†ã‚’指定ã?™ã‚‹ã‚ˆã‚Šæ¬¡ã?®ã‚ˆã?†ã?«å‘¼ã?³å‡ºã?™æ–¹ã?Œã€?処ç?†ã?ŒçŸ­æ™‚é–“ã?§æ¸ˆã?¿ã?¾ã?™ã€‚ã?—ã?‹ã?—è¿”å?´ã?•れる領域ã?¯å°‘ã?ªã??ã?ªã‚‹ã?§ã?—ょã?†ã€‚
call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('US', 'CUSTOMER', 0, 0, 1);

Java�例

US���スキーマ��るCUSTOMER���表を圧縮�る����全��圧縮処�を指定���。
CallableStatement cs = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, ?, ?, ?)");
cs.setString(1, "US");
cs.setString(2, "CUSTOMER");
cs.setShort(3, (short) 1);
cs.setShort(4, (short) 1);
cs.setShort(5, (short) 1);
cs.execute();
å?Œã?˜è¡¨ã?®æœ«å°¾ã?«ã?‚る空ã??領域を返ã?™ã?ªã‚‰ã€?å…¨ã?¦ã?®å‡¦ç?†ã‚’指定ã?™ã‚‹ã‚ˆã‚Šæ¬¡ã?®ã‚ˆã?†ã?«å‘¼ã?³å‡ºã?™æ–¹ã?Œã€?処ç?†ã?ŒçŸ­æ™‚é–“ã?§æ¸ˆã?¿ã?¾ã?™ã€‚ã?—ã?‹ã?—è¿”å?´ã?•れる領域ã?¯å°‘ã?ªã??ã?ªã‚‹ã?§ã?—ょã?†ã€‚
CallableStatement cs = conn.prepareCall
("CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, ?, ?, ?)");
cs.setString(1, "US");
cs.setString(2, "CUSTOMER");
cs.setShort(3, (short) 0);
cs.setShort(4, (short) 0);
cs.setShort(5, (short) 1);
cs.execute();
ヒント: SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE手続ã??ã?¯ã€?自動コミットモードã?§å®Ÿè¡Œã?™ã‚‹äº‹ã‚’ã?Šå‹§ã‚?ã?—ã?¾ã?™ã€‚
注: ã?“ã?®æ‰‹ç¶šã??ã?¯åœ§ç¸®ã?™ã‚‹è¡¨ã?«æŽ’他表ロックを必è¦?ã?¨ã?—ã?¾ã?™ã€‚表やã??ã?®ç´¢å¼•ã?¸ã?®ã?‚らゆる文ã?®è¨ˆç”»ã?¯ç„¡åйã?¨ã?ªã‚Šã?¾ã?™ã€‚利用ã?•れã?¦ã?„ã?ªã?„領域を識別ã?™ã‚‹æ–¹æ³•ã?«ã?¤ã?„ã?¦ã?¯ã€?Derby サーãƒ?ã?¨ç®¡ç?†ã‚¬ã‚¤ãƒ‰ã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。