みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
win7
FM15 advanced
タイトルの通りです。
ESSにてoracle11gのテーブルを参照しています。
その中で1000万件を超えるテーブルが1つあり、このテーブルを
基底とするレイアウトへの移動が非常に遅く困っております。
10~20分応答が無く、応答後は普通に検索等が行えます。
とにかくレイアウト切り替えだけが、異常なレスポンスなのです。。
試したこととして
1.別テーブルのレイアウトで検索モードにしてから対象レイアウトへ移動
⇒全く変化無し
2.対象レイアウト上のオブジェクトを全て削除してみる
⇒全く変化無し
3.レイアウトモードで試してみる
⇒全く変化無し(なぜ。。)
4.ExecuteSqlでデータ取得してみる。
⇒これも全く応答無し
唯一の対応策としましては、ODBC経由のレコードインポートとなります。
この方法だと一時表を作る必要が有り、全てのスクリプトをこれに対応させるのは
できれば避けたいところです...。
何か回避策をご存知の方がいらっしゃったら、ご助言のほどよろしくお願いいたします。
Offline
列数は?
索引はありますか?
補助フィールドを作ってますか?
timさん
resありがとうございます。
列数は22です。blobのような特殊なフィールドはありません。
Number、Varchar2、Dateのみです。
索引は4つほど定義されております。
補助フィールド(計算フィールドと同義ですよね?)は定義しておりません。
ちなみにその後、このESSのみのファイルを1から作って試しても同じでした。。
Offline
解決はしていませんが、FM社から回答頂きましたので共有します。
oracle側に、ユニークキーが定義されていないことが原因のようです。
一度キー情報をキャッシュに溜め込んでから表示するらしく、この処理の際に
ユニークキーが無いと時間がかかるとのことでした。
対策としてはoracle側にユニークキーを定義するか、viewを作成して
rownumを使って、擬似的にユニークキーを作る方法が有効だそうです。
私の環境では残念ながらこの対策が取れない状況ですが、次回以降は
この点を考慮して要件を固めるようにしたいと思います。
Offline
Pages: 1
[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 507.1 KiB (Peak: 511.64 KiB) ]