2012年8月27日月曜日

ORACLE速度劣化の確認事項

備忘録です。間違いがあるかもしれません。

1.インデックス情報などが抜けているもしくは削除されていないか確認する。
 (全インデックスを確認)

2.ハードディスク容量は圧迫されていないか確認する。

3.メモリの使用量を確認する。
 (メモリをORACLEで使いすぎると、OSの動作で遅くなる)

4.CPUの使用量は安定しているか確認する。
 (SQLに問題がある可能性がある

5.統計情報を以下コマンドで取り直す。

 例)表ごとの統計情報を取得する場合
 EXECUTE DBMS_STATS.GATHER_TABLE_STATS('SCOTT','EMP');
 例)スキーマごとの統計情報を取得する場合
 EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS('SCOTT');

 例)8i以下の場合
 ANALYZE TABLE tablename COMPUTE STATISTICS

以上です。

2012年6月4日月曜日

C1FlexGrid 5.0Jでの入力制御について

グリッドのセル編集において、不正な値を入力させないために入力制御したいケースは多々あります。
C1FlexGrid 5.0Jでは、グリッドのカスタムエディタを設定することで入力制御ができます。

サンプルとして、新規プロジェクトを用意し、フォーム上にグリッド「Grid1」とテキストボックス「TextBox1」をあらかじめ配置しておきます。
そしてFormのLoadイベント上でカスタムエディタを設定します。

下記ではグリッドの左から2列目のカスタムエディタとして 「TextBox1」を設定してあります。

実行してみると、フォームに張り付けた「TextBox1」が消えているはずです。
カスタムエディタとして指定したコントロールは、普段は画面上から消えた状態になります。

グリッドの左から2列目をクリックし、編集モードになった時、エディタとして表示されます。

次にこの「TextBox1」に入力制御を付けてみます。

すると、セル編集時に10文字までしか入力できないように制御できます。


カスタムエディタには自作のコントロールも指定できますので、拡張テキストボックスを自作すればさまざまな条件での入力制御が行えます。
【ちなみに】
カスタムエディタの使い方について、もっといろいろ知りたい場合は、C1FlexGrid 5.0J付属のサンプルプログラム「CustomEditors」を見てください。
日付をカレンダーから選択したり、色を選択する方法も含まれています。

64bit環境でインストールした場合、デフォルトで以下のZipファイルの中に格納されています。

C:\Program Files (x86)\C1FlexGrid5\Samples\C1FlexGrid_Samples_VB.zip

2012年5月16日水曜日

Oracle11g パスワード設定

Oracle10gまでパスワードのデフォルト有効期限は無期限でした。
11gからは180日がデフォルトになります。

変更が必要な場合・・・・
以下に関連するコマンドを記載します。

・プロファイルのパスワード有効期限を無期限にする
alter profile default limit password_life_time unlimited;

・ユーザーのパスワードを再設定する
alter user ユーザ名 identified by 新パスワード;

・ロックされているアカウントのロックを解除する
alter user ユーザ名 account unlock;

<手順>

1 oracle管理者アカウントにてログイン

2 sysdbaにてOracleログイン

3 現在のパスワード有効期限を確認

3.1 該当アカウントのユーザプロファイルを確認

SQL> select username,profile from dba_users
      where username like 'XXX';

3.2 ユーザプロファイルのパスワード有効期限を確認

SQL> select *  from dba_profiles
      where profile = 'DEFAULT'
       and resource_name = 'PASSWORD_LIFE_TIME';

4 パスワード有効期限の変更

4.1 新規にユーザプロファイルを作成し、有効期限を新たに設定

create profile XXX_PROFILE limit PASSWORD_LIFE_TIME 360;
※無期限にするなら360→UNLIMITEDを指定

4.2 作成プロファイルのパスワード有効期限を確認

SQL> select *  from dba_profiles
     where profile = 'XXX_PROF'
     and resource_name = 'PASSWORD_LIFE_TIME';

4.3 作成したプロファイルを該当アカウントに割り当て

alter user XXX profile XXX_PROFILE;

4.4 該当アカウントのユーザプロファイルを確認

SQL> select username,profile from dba_users
      where username like 'XXX';



以上。