[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
データの更新頻度が少ないもしくは更新タイミングが決められている
マスタテーブルなどの参照で、結合等々でレスポンスが出ない場合、
マテリアライズド・ビューが有効だそうな。
用途はビューと同じだが、定期的に更新される上インデックスを
設定できるので、必要なデータだけが入った単一テーブルとして
参照ができる。
作成手順を書いてみた。
1:マテリアライズド・ビューを作成する。
create materialized view ビュー名
refresh force with rowid
as
SELECT 項目名 FROM (スキーマ).参照テーブル
/
2:インデックスを設定する。
TABLESPACEの設定は環境によって適宜変更する。
CREATE UNIQUE INDEX スキーマ.インデックス名 ON スキーマ.ビュー名 (1, 2・・・)
TABLESPACE USERS LOGGING PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 16K NEXT 328K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 50
FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT )
/
3:リフレッシュグループの設定する。
ビューのデータを更新するタイミングをグループ単位で設定できる。
<<実用最低限の項目の意味と設定値。他は適宜設定>>
next_date :次回リフレッシュ日付。初回は最初の更新タイミングとなり、以降は勝手に書き換わる。
interval :リフレッシュ間隔 この間隔を元にnext_dateは算出されて書き換わる。
<例:2010/02/12の1時開始で1日おきにリフレッシュをしたい場合。>
BEGIN
DBMS_REFRESH.MAKE(
name => '"リフレッシュグループ名"',
list => '',
next_date => to_date('12-02-2010 01:00:00', 'MM-DD-YYYY HH24:MI:SS'),
interval => '/*1:Day*/ sysdate + 1',
implicit_destroy => FALSE,
lax => FALSE,
job => 0,
rollback_seg => NULL,
push_deferred_rpc => FALSE,
refresh_after_errors => FALSE,
purge_option => NULL,
parallelism => 0);
END;
/
4:マテリアライズド・ビューをリフレッシュグループに追加する。
複数登録したい場合は対称ビュー分書く
BEGIN
DBMS_REFRESH.ADD(
name => '"リフレッシュグループ名"',
list => '"ビュー名"',
lax => TRUE);
END;
10gの環境なんで他は違う書き方なのか、
大量データはリフレッシュに時間がかかるのかは未検証なので
わかったら更新します。
新たな開発現場に入って一ヶ月・・・
プログラムを大量生産していざ試験フェーズに入ると
謎のバグに遭遇するもので(~~)
JSPで画面上のテーブル行を生成する箇所で
データが1行だけの場合にその中のフォームに
カーソルを当ててEnterキーを押下すると落ちる。。
画面上のボタンにフォーカスはあたっているが
その中のJavaScriptが動作せずにSUBMITされている模様。
デバッグしてみるとServletの処理には入ってきているが、
画面から受け渡されるリクエストが空っぽ。
2時間ハマって4年前に同様の現象に遭遇したことを
思い出した。
IEだと画面上のフォーム内にテキストフィールドが1個しかない場合に
submitボタンの情報が送られない件
これまだ直ってないのかよOTZ
IE8になっても直ってないということはMSは
仕様で押し通すつもりなんでしょうか。。。
回避策は他のサイトにあるJavaScriptでのエレメント個数把握
後のダミーINPUTを検討したが、JavaScriptがこけたり
顧客の端末でオフられてたら画面が落ちるのも嫌なのでJSPで対処しました。
<JavaScriptでやる場合>
var f = document.forms;
for(var elm, i = 0; elm = f[i]; i++) {
var input = document.createElement('input');
input.style.display = 'none';
elm.appendChild(input);
}
<JSPでやる場合>
--hoge.css--
/* フィールドを透明にする */
.none {filter: alpha(style=0, opacity=0);}
--hoge.jsp--
<%
List results = XXX;
// ループの中ですよ
for (int i = 0 ; i < results.size() ; i++) {
// 取得件数が1件の場合ダミーのINPUTフィールドを生成
if(results.size() == 1){
%>
<INPUT CLASS="none" TYPE="text" VALUE="" TABINDEX="-1">
<%
}
}
%>
昨日ようやくRubyonRailsの環境ができたのですが、
今日はブラウザ上にviewを表示するところまでで数回ハマリました。
書籍を見ながらやっていたのですが、
まずコントローラとビュー生成でコケました。。。
c:\ruby\rails\hello>ruby script\generate controller hogehoge aa bb cc
と入力し、コントローラhogehoge アクションをaa,bb,ccの3つ作りました。
これでディレクトリ構成まで作ってくれた時は感動しました(ToT)
しかし!出来上がったveiwsのフォルダを見ると「aa.rhtmlとbb.rhtmlとcc.rhtml」が
出来ているはずですとかかれてあるのにそこに居たのは
「aa.html.erbとbb.html.erbとcc.html.erb」
「.html.erb」って何?
中身は問題なさそうなので、拡張子を「.rhtml」に修正し
書籍と同じ様に記述し、いざWEBrickサーバー起動!
書籍には~
★★「これまでの内容通りにできていれば下記のようなページが表示されているはずです」★★
と書いてありますが、やはり・・・
落ちましたotz
コンソールの文字が化けてたのでエンコードの問題だと思い、ファイルを調べるとShift-JIS!
UTF-8に変換しなおして、実行も状況変わらず。。。
どうやら、拡張子を変更したときに置き去りにしていた「.html.erb」を参照している模様。
このバージョンは出来上がる拡張子も違うのか。
では「.html.erb」に書いてやろうやないか~い!とコピペするも・・・・落ちましたotz
sqliteがインストールされていないようです。(こんなこと書いてなかった。。)
ただの変数渡しの紙芝居の画面になぜsqliteがないとエラーになるのかさっぱり分からないのですが
前に進めないので、インストールすることにしました。
c:\ruby\>gem install sqlite3-ruby --version '= 1.2.3'
バージョンは1.2.3でないとダメだそうです。
(始めてからこんなのばっかり・・・どんだけライブラリの整合性が取れていないんだ。。。)
でリトライ! ・・・も落ちました(#^ω^)ビキ
「sqlite3.dll」が見つかりませんだって。
sqlite3.dllを探して再度ネットの海へ・・・
ここにある「sqlitedll-3_6_16.zip」をダウンロードし、解答した中身のsqlite3.dllをrubyのbinへ配置
でリトライ! ・・・も落ちました(#^ω^)ビキビキ
ruby TemplateError(undefined method `start_form_tag' for ~
のようなエラーがコンソールに出ています。
どうやら構文エラー? でも教材についていた標記とは全く同じです。
分からないので、またネットで探し回りました。
で、見つけました。
またもバージョンの違いで`start_form_tag'の構文が変わっている模様(どんなフレームワークなの?)
<%= start_form_tag :action => :bb %> ~ <%= end_form_tag %>
↓
<% form_tag :action => :bb do -%> ~ <% end -%>
全然違うんですが・・・
ここで買った本の発行年度を調べると古すぎることに気づきました。
「2007年12月」(;_;)
★★これでブラウザにめでたく表示されました★★
6/12,15のたすき線からの宵の明星
7/1,7/2のつつみ線からの宵の明星
ここ2週間で教科書どおりのチャートを作って
下降トレンドの形になりつつあります。
これからしばらくは売りかな。
風邪つらいので、画像を作成する力が出ないのが残念です。。。
夏風邪・・・つらいです。。。
6月は引越&システムリリースが重なり、体力・精神的に
かなりキツかったので、その反動か
7月1日より風邪ひいてます
28年間で一度も夏に風邪なんかひいたことなかったので
免疫がなく、5日経ってもまるで治る気配なし。。。
現場から抜けて7月は案件探しながらRubyも勉強しようと
した矢先のことでした。
風邪ひいてるけど少しずつ勉強・投資頑張ります!