マップをホームページやブログなどに埋め込むときのふきだしを消す方法です。WEB制作Oracle11gメモリ簡易チューニングメモ前置き:メモですので、間違いがあるかもしれません。010gのメモリ管理仕様になる。場合は必要に応じてSGAおよびPGAを削減または増大する。10g補足SGA_TARGETを使用することによって、データベースで割り当てられる共有メモリー領域のサイズを正確に制御する。起動時にSGA_TARGETをSGA_MAX_SIZEより大きい値に設定すると、そのSGA_TARGETに対応してSGA_MAX_SIZEが増加する。PGA_AGGREGATE_TARGETを使用すると、すべての専用セッションの作業領域のサイズ設定が自動的に行われ、これらのセッションについてはすべての*_AREA_SIZEパラメータが無視される。ある時点での、インスタンスのアクティブな作業領域で使用可能なPGAメモリーの合計は、パラメータPGA_AGGREGATE_TARGETから自動的に導出される。この量は、PGA_AGGREGATE_TARGETの値から、システムの他の構成要素により割り当てられたPGAメモリー(たとえば、セッションにより割り当てられたPGAメモリー)を差し引いた値に設定される。結果として、PGAメモリーは、特定のメモリー要件に基づいて個々のアクティブな作業領域に割り当てられる。設定できる値はMANUALまたはAUTOの2つのみです。デフォルトはAUTOです。データベース管理者は、PGA_AGGREGATE_TARGETを設定して、次にメモリー管理モードを自動から手動に切り替えます。前置き:SQLチューニングをまとめてみました。メモですので、間違いがあるかもしれません。SQLチューニングは、処理時間・アクセスする必要のあるデータ・ブロック数を減らすことを目的とします。結果、データベース・バッファ・キャッシュがより効率的になり、キャッシュ・ミスの場合でも必要なデータ・ファイルへのI/Oは小さくなる。システム負荷を低減することが可能です。用語:オプティマイザとは、表へどのような経路でアクセスし、どのような順番、方法で結合するか実行計画を効率的に決定するのがオプティマイザの役割。10gからはコストベースのオプティマイザのみがサポート対象。統計情報は、DBMS_STATSパッケージもしくはANALYZEコマンドで取得します。<レコードアクセス方法>1.全表スキャン2.ROWIDスキャン3.索引スキャンがある。索引スキャンでは、「索引ブロックの読み込み+データ・ブロック」の読込みとなる。検索したいレコード件数が、レコード全体の5~15%程度までの場合は、索引スキャンの方が効率的といわれています。<結合方法>1.ネステッド・ループ結合ネステッド・ループ結合を効率化するためには、レコード数がより少ない方を外部表とする。レコード数に大差がない場合には、結合条件列の索引スキャンがより効率的な方を内部表とする。結合対象が多く、なおかつ結合条件が等価条件ではない場合に使用する。結合条件に等価条件が指定され、大量のレコードなど表の大部分を結合する場合に有効な結合方法。<SQLチューニングが必要なもの>1.1実行当たりの実行時間が長いSQL2.ディスク読み取りブロック数が多いSQL3.バッファの読み取り数が極端に多いSQL4.実行回数が極端に多いSQL<対象SQLの取得方法>動的パフォーマンスビューより、取得します。V$SQL、V$SQL_TEXT、V$SQL_PLANの3つとなります。共有SQL領域に保持されているSQLの情報を表示します。V$SQL_TEXTを参照することで完全なSQLを取得することが可能。piece;<SQLの記述を統一する>実行されるたびに条件の値が異なるSQLを実行しているアプリケーションでは、リテラル値部分を変数化し、SQLの記述を統一する。‐inで置き換える(可能な場合)★複合索引の有効利用は、検索性能を向上させるうえで、利用できる機会が多い。■件数の多い表同士を結合し、全レコード出力する場合ネステッド・ループ結合→不向きソート/マージ結合→結果を結合列でソートして出力する場合に有効。1DEGREEが「1」の場合、パラレル度が設定されていません。・外部結合しまくりのSELECT句はできるかぎり書かない。・FROM句にテーブル名をいっぱい書かない。・半角カタカナ使わない。・GOTOは使わない。・暗黙カーソルでの問合せは使わない。・SQL構文は、すべて大文字で記述したほうがパフォーマンスがよくなる。PL/SQLについてもすべて大文字で記述したほうがよい。インストール・ActiveSyncは別バージョンを同居させることが出来ないらしいので、古いバージョンがある場合は先にアンインストールしておくこと。インストール・SDKにはStandardとProfessionalの二種類がありますが、違いは開発ターゲットのOSです。中でインストールされていないものを検出して警告を出してくれるので、先に何が足りないかを確認しておくといいかもしれません。インストール・必須ではありません。SDKには英語版のエミュレータが含まれているため動作させることは可能ですが、日本語は文字化けします。・ビルド時にlibbmtd.pdbで警告LNK4099が出る件について無視して問題ないらしいです。【エラーの内容】[エラー番号]ORA-01000[エラーメッセージ]最大オープン・カーソル数を超えました。[エラー原因]ホスト言語プログラムがオープンしようとしているカーソルの数が多すぎます。1ユーザー当たりのカーソルの最大数は、初期化パラメータOPEN_CURSORSによって決定されています。[エラー処置]プログラムを変更して、使用するカーソルの数を減らしてください。繰り返しエラーが発生する場合は、Oracleを停止して、OPEN_CURSORSの値を大きくしてから、Oracleを再起動してください。PL/SQLストアド・プロシージャで使用するカーソルは、検索結果のみをクライアント側で取得できるので、非常に効率的です。プログラミング時にカーソルの使い方を正しく意識していないと、「ORA-01000」エラーとなるケースがあります。OPEN_CURSORSの値を増やせば、確かに上記のエラーが発生する確率を減らすことはできます。逆にリソースを多く消費するようになり、Oracleのパフォーマンスが全体的に低下させてしまいます。カーソルというもの自体リソースを多く消費するものなので、大量に使用するというのはアプリケーションの仕組み的にやはり好ましくありません。上記のエラーを回避するにはOPEN_CURSORSの値を増やすよりも、むしろアプリケーションで必要以上にカーソルを使用するようなロジックになっていないかどうかをまず見直すことのほうが大事です。現状長年動作しているプログラムですので、スレッドなどを使用しているマルチタスクのアプリケーションや、アプリケーション修正時の2次障害を考えると、アプリケーション側での対応は難しい状況と認識しています。「OPEN_CURSORS」の値を変更することになるかと思います。その際に変更値の指針が必要です。10gでは「300」がデフォルトの値です。「V$OPEN_CURSOR」で確認できます。このビューは、各ユーザー・セッションが現在すでにオープンして解析しているカーソルを示します。文を一意に識別するSQL_TEXTVARCHAR2(60)オープン・カーソルに解析されるSQL文の最初の60文字V$OPEN_CURSOR動的パフォーマンスビューセッションごとに使用されるカーソルの数をユーザー名をキーにして検索します。「OPEN_CURSORS」の値近くまで増大している場合、値を変更する必要があります。desc;<カーソルクローズについての参考>次のSQLを実行した場合,その時点で開いているカーソルはすべて閉じられます。暗黙的ロールバックありのエラーが発生した場合にも,カーソルはすべて閉じられます。・PREPARE文(クライアント環境定義PDPRPCRCLSにYESを指定している場合)・内部DISCONNECT(DISCONNECT文を実行しないでUAPを終了する)ただし,ホールダブルカーソルは,COMMIT文を実行した場合は閉じられません。TABLE文を実行し,ホールダブルカーソルで開いている表が検査保留状態に設定された場合,ホールダブルカーソルは閉じられます。形式2で手続きが返却した結果集合の組に割り当てられたカーソルに対してCLOSE文を実行した場合,現在参照している結果集合の次の結果集合が存在するときは,現在参照している結果集合は閉じられます。カーソルは次の結果集合を参照し,次のリターンコードが設定されます。SQL連絡領域のSQLCODE領域に121SQLCODE変数に121SQLSTATE変数に'0100D'また,このときカーソルは開いた状態となります。次の結果集合が存在しない場合は,現在参照している結果集合は閉じられ,次のリターンコードが設定されます。SQL連絡領域のSQLCODE領域に100SQLCODE変数に100SQLSTATE変数に'02001'また,このとき拡張カーソル名はどのカーソルも識別しなくなります。輸出許可情報に関する追加設定をしました。-------------------------------------------------------------------------------------------------------------あとはアプリがちゃんと取込んでくれたらOK!北京の皆さん、テスト、テスト、テストー。技術メモ(NACCS)Oracle9i初期設定ファイルについて(いまさら)ハード障害でOracle9iの設定をしました。初期設定ファイルについて初期設定ファイルは二つもある。優先順位や編集方法を記載します。pfileは、テキストで編集可能。Oracle9iからは、「サーバーパラメータファイル」が追加されました。=spfilespfileは、バイナリでテキストで編集不可です。spfile;<パラメータいろいろ>db_block_sizedb_cache_sizedb_namebackground_dump_destcontrol_filesfixed_dateinstance_namejava_pool_sizelarge_pool_sizeservice_namessga_targetsga_max_sizeshared_pool_sizepfileとspfileという二つの初期設定ファイルが存在します。='spfile'→表示されない場合pfileが有効。初期設定ファイルを変更してサーバーを再起動しないと設定変更が反映されないものと再起動しなくても設定変更が反映するものがあります。spfilepfileで、その中身を確認。設定変更が反映されているかがわかります。!!!来ました、待ちに待ったオフィスコンビニ♪♪♪カップラーメンも置いて貰いました。飲んだ分だけの支払いで良いので、損はなし!!夏のお供が8月に到来です。