2008年8月29日

[openoffice:11287] Re: Baseの動作が遅い

少々長いですが・・・

●状況確認
 以下のような状況になっていると考えてよろしいでしょうか。

 ・OpenOffice.org 2.4.1、Ubuntu 上で、

  ・Writer や Calc はサクサク動く。


  ・Base のメニューなどはサクサク動く。

  ・Writer などで「データソース」を表示し、
   Baseで別途作成しておいたファイル内のテーブルを表示し、
   後方のレコードを見るためにスクロールしようとすると、数秒待たされる。

  ・同じBaseのファイルを開いて、Base上でそのファイル内の
   テーブルの内容を表示し、後方のレコードを見るために
   スクロールしようとすると、数秒待たされる。


●OpenOffice.org の入手元の確認

 どの OpenOffice.org をお使いでしょうか。
 ・Ubuntu にはじめから入っている OpenOffice.org
 ・OpenOffice.org のコミュニティがリリースした OpenOffice.org
 ・その他

1. OpenOffice.org をメニューなどから起動する。

2. 以下のようなコマンドを「ターミナルエミュレーター」などのコマンドを
  入力する画面にて実行する。

ps -ef -w -w | grep soffice | grep -v grep

以下のような出力が表示される。

tora 23478 3085 0 14:05 pts/3 00:00:00 /bin/sh /opt/openoffice.org2.4.1/program/soffice
tora 23489 23478 1 14:05 pts/3 00:00:08 /opt/openoffice.org2.4.1/program/soffice.bin

3. 上記のコマンドの出力のパス名の最後の部分の soffice.bin を versionrc に変更し、
  以下のようなコマンドにて、パージョン情報などを確認する。

  cat /opt/openoffice.org2.4.1/program/versionrc

[Version]
AllLanguages=en-US
buildid=680m17(Build:9310)
ExtensionUpdateURL http://updateext.services.openoffice.org/ProductUpdateService/check.Update
ODFNotifyURL http://odfnotify.services.openoffice.org/OOo2.4.1/notification.jsp?version=ODF
OOOBaseVersion=2.4
ProductBuildid=9310
ProductMajor=680
ProductMinor=17
ProductPatch=
ProductSource=OOH680
UpdateID=OpenOffice.org_2_en-US
UpdateURL http://update24.services.openoffice.org/ProductUpdateService/check.Update?pkgfmt=rpm
UpdateUserAgent=OpenOffice.org 2.4 (680m17(Build:9310); $_OS; $_ARCH; BundledLanguages=en-US)


●情報収集
 1. 「ツール」「オプション」「OpenOffice.org」「Java」を選択
   数秒から数十秒待たされるかもしれません。しばしお待ちを。

 2. 表示された「Javaのオプション」ダイアログ内にはどのような
   情報が表示、選択されていますでしょうか。
   ・「Java Runtime 環境を使用」には、チェックが付いている?
   ・「Java Runtime 環境 (JRE) はすでにインストールされています」という表示?
   ・左端の丸いラジオボタン、ベンダー、バージョン、機能、などには、
    どのような文字列が表示されていますか?
   ・上記の項目が複数ある場合、どれが(ラジオボタンで)選択されていますか。
   ・その選択されている項目を選択すると、下部の「場所: 」には、
    どのような文字列 /usr/... など、が表示されますか。

 または、以下のようなファイル名のファイルがあるかと思います。
 /$HOME/.openoffice.org2/user/config/javasettings_Linux_x86.xml

 そのファイルには、どのような内容が記録されていますでしょうか。

●詳細な情報収集

 以下で「画面」とは、「ターミナルエミュレーター」などのコマンドを入力する
 ウィンドーのことを意味しています。

 1. OpenOffice.org 2.4.1 を Ubuntu 上で起動する。
   メニューなどからではなく、コマンドラインから起動する。

   /opt/openoffice.org2.4.1/program/soffice
   
2. 今回の現象が見受けられる状況の直前まで、用意する。
   データソースを表示するとか、Base でファイルを開くとか。。。

 3. 以下のようなコマンドなどで、OpenOffice.org のプロセスIDを取得する。

   ps -ef | grep soffice.bin | grep -v grep
tora 22365 22354 10 13:36 pts/3 00:00:01 /opt/openoffice.org2.4.1/program/soffice.bin

pgrep -x soffice.bin
22365

 4. トレーサーを起動する。
  以下の例では、プロセスIDのコピー&貼り付けの手順を省略し、
  手順3 の出力結果を直接コマンドラインへ引き渡しています。

  strace -f -tt -p `pgrep -x soffice.bin`

5. スクロールなどの作業をしてみる。

 6. strace を起動した画面にて、Ctrl-C で starce を終了する。

  read や write などの行が大量に表示されるでしょうから、
それらは、今回の情報収集作業では、特に注目していないので、
  以下のようなオプションを追加して表示しないようにし、
  再び挑戦してみる。

strace -f -tt -e 'trace=!read,write,select,gettimeofday,ioctl' -p `pgrep -x soffice.bin`
strace -f -tt -e 'trace=!read,write,select,gettimeofday,ioctl,futex,clock_gettime,poll' -p `pgrep -x soffice.bin`

  または、ファイルアクセス関連だけに絞り込んでみるとか、

strace -f -tt -e trace=file -p `pgrep -x soffice.bin`


 7. strace を起動した画面では、
   ・単にリターンキーを複数打ち込んで空行を表示されておき、
    ここから始まり。とわかりやすくしてみたり、
   ・Ctrl-S で表示を一時停止し、Ctrl-Q で表示を再開してみたり、
   ・Ctrl-C で終了してみたり、
   ・Ctrl-C が効き目が無かった場合は、Ctrl-Z で starce をまず停止し、
    kill -9 %1 や pkill -9 strace などで、strace を強制終了してみたり、
 
 8. soffice.bin を起動した画面では、
   ・OpenOffice.org の調子が不安定になった場合、Ctrl-C で終了してみたり、
 
9. 他の画面では、
   ・以下のようなコマンドで、強制的に終了してみたり、してみてください。

pgrep -l soffice
22749 soffice
22760 soffice.bin

    上記のように、soffice という Shell スクリプトと、soffice.bin という
    実行形式が動作していることを確認し、

pkill soffice    で終了
pkill -9 soffice   で強制的に終了

10. なんとなく、どこで時間を食っているか、同じ動作を繰り返していたりして
   無駄じゃないの?とか、がわかってきたら、
strace コマンドの出力をログファイルとして記録してみる。

   例: strace -o log.txt -f -tt -e trace=file -p `pgrep -x soffice.bin`

  他の画面で、

tail -f log.txt

Ctrl-C で終了する。


Tora


demise-jscn@xxxxx wrote:
> 以前も印刷の件でお世話になりました.
> Baseで作成した処方箋データベースを,ゴキゲンとはいかないまでも,活用しています.
> データの規模としては,
>
> 1レコードのフィールドは
> ID(長整数,Key),名前,読み,生年月日など,
> 処方データはVarcharでサイズが各々3,25,5,16のフィールドが11セット
>
> そのようなレコードが現在250名分くらいです.
>
> 環境は
> 1) WindowsXP,StarSuite8(作成時はOpenOffice2.4.0だったかな)
> 2) Ubuntu8.04,OOo2.4.1(デュアルブート環境,Winパーティションをマウントし,1で作成したファイルを読みにいってる)
>
> 状況
> 1) 検索が遅い.差込み印刷でデータソースを表示し,たとえば「ID24と38と125と・・・」というふうに複数選択して印刷したいんだけど,その画面のスクロールがすごくトロい」
> 10行分スクロールするのに,5秒以上待たされることもある.
>
> 2)のUbuntu環境では,さらに悲惨で,
> スクロールするたんびにウィンドウがグレーになり,気を失ったみたいに動かない.20秒くらい死んでることもある.
> Base本体のフォームで,「ほげ*」などと検索すると,感覚的には,毎秒5レコードくらいしか進まない.
> 実質的に使用に堪えない状態.
>
>
> というような状況です.
> 最近は基本的にUbuntuをメインに使ってるので,困ってます.
> フォントもMSをIPAモナーに変換する設定で,きれいに印刷できて喜んでたのに・・・
> 試しに,ファイル自体をUbuntu側にコピーして開いてみましたが,まったく同じでした.
>
> フィールドのIndexとかを設定する方法などがあるのでしょうか?
> それとも根本的にテーブルの設計の仕方が間違ってるのでしょうか?


【MLコミュホームページ http://www.freeml.com/openoffice

--[PR]------------------------------------------------------------------
__________ ☆HMVは、CD DVDだけではありません!
\ HMVでお得に  / …………………………………………………………
/ お買い物!  \ ☆wii Nintendo DS PSPなどのゲームソフトが
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  なんと最大で15%OFFで買えちゃうんです!
http://ad.freeml.com/cgi-bin/sa.cgi?id=czZtW
------------------------------------------------------------------[PR]--
■GMO INTERNET GROUP■ GMO INTERNET www.gmo.jp


投稿者 xml-rpc : 2008年8月29日 14:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/76781
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。