Insight Technology, Inc

インサイトテクノロジー

Japanese | English

株式会社インサイトテクノロジー  発行
http://www.insight-tec.com

\_〜…〜…〜…〜…〜…〜…〜…〜…〜…〜…〜…〜…〜…〜…〜…〜_/
^^\_                                               2003.09.12 _/^^
^^^^\_      海の見える開発室  −解き放てmind!−            _/^^^^
^^^^^^\_                                          Vol.004 _/^^^^^^
^^^^^^^^\_〜‥〜‥〜‥〜‥〜‥〜‥〜‥〜‥〜‥〜‥〜‥〜_/^^^^^^^^

≪目次≫
■ディベロッパーX  〜開発者たちの挑戦〜
  ◆リアクティブな監視
■どっぷり開発生活
■開発フリートーク
■お知らせ・・・
■編集者より

___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
■ディベロッパーX  〜開発者たちの挑戦〜
___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
◆リアクティブな監視

前回は「プロアクティブな監視」について調べてみました。Oracleのバージョ
ンによって領域管理方式が違うことを知り、DMT(ディクショナリマネージメン
ト・テーブルスペース)を使っているにもかかわらず、大量にエクステントを
発生させている場合や、領域管理方式に関わらず監視報告すべき項目があるこ
とを知りました。

まぁ、確かにOracleの新しい機能をガンガン取り入れて、パフォーマンスの悪
化しないDB構築がスラスラできて〜なんて言ったら最高なんでしょうけど。。
完璧だと思っても後からいろいろと問題が出てきちゃうんですよね〜。
ところでOracleのバージョンによって変化している機能ってなんだろう???
バージョンによって変化してきている機能をどうやって監視するんだろう??
素朴な疑問がフツフツと湧き上がってきたぁ〜!よし、行ってきまーす!!


┏─────────────────────────────────┓
┃テンポラリ・テーブルスペースとは                                  ┃
┗─────────────────────────────────┛
・SQL文の中にあるorder byやgroup byなどのソート処理はメモリ上にアロケー
  トされたワーク領域で処理されます。
・一定量のワーク領域を越えるとディスク上のワーク領域が必要となります。
・Oracleではディスク上のワーク領域をテンポラリ・テーブルスペースとして
  用意しておく必要があります。

⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃⊂●⊃

〔KA〕何で今回はテンポラリ・テーブルスペースなんですか?

〔DV〕前回の領域管理の流れで取り上げました。

〔KA〕じゃ、また、プロアクティブ・チェックですね?

〔DV〕プロアクティブ・チェックの要素もあるんだけど、今回のケースは設定
      ミス的なものを見つけて正しい設定に導くケースが多いから、プロアク
      ティブとは全く逆のパターンだな。

〔KA〕プロアクティブの反対ってなんて言うんですか?

〔DV〕リアクティブ!

〔KA〕設定ミスって、後から見つけるからリアクティブなチェックしかできな
      いですもんね。でも・・・チョット待ってください!プロアクティブ・
      チェックをするには、ミスをしないようにインストールの時から注意し
      ないとできないんじゃないですかぁ??

〔DV〕そうなんだよ。今回のようにパフォーマンスやトラブル問題を引き起こ
      す種はきちんと監査する人がいれば防げるんだよ。

〔KA〕Insightの「Oracleコンサルタント達」は忙しそうですもんね!!!
      後は、ローカルマネージメントとかの新しく出てきた機能とも絡むんで
      すね!

〔DV〕そう。ローカルマネージメントと伴にテンポラリ・テーブルスペースは
      いくつかのバージョンで機能が随分変わってきています。バージョンに
      合った新しい機能を使うための方法も違うので、お客様の多くはバー
      ジョンアップしても改善されたテンポラリ・テーブルスペースの恩恵を
      受けれてないんだな。

〔KA〕改善されたテンポラリ・テーブルスペースへの移行をナビゲートするん
      ですね!

〔DV〕そう。少しややこしいんだけど、一般的なテーブルスペースをTEMPORARY
      属性として扱っていたバージョンと、CREATE TEMPORARY TABLEPSPACE 
      xyz TEMPFILE …で作成するnewテンポラリ・テーブルスペースがあって、
      それと、いくつかのパラメータ設定もあるんだ。関係するパラメータは、
      SORT_AREA_SIZE, HASH_AREA_SIZE, PGA_AGGREGATE_TARGET, 
      WORKAREA_SIZE_POLICYなどなんだけど。。。わかる??

〔KA〕・・・


___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
■どっぷり開発生活
___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

┏─────────────────────────────────┓
┃総合評価欄                                                        ┃
┗─────────────────────────────────┛
-->> テンポラリ・テーブルスペースがディクショナリ管理
                              テーブルスペース(DMT)になっています<<---
ローカル管理テーブルスペース(LMT)に変更する事により以下の点が改善され
ます:
・SORT_AREA_SIZEで指定したメモリサイズを超えたディスク・ソート処理の効
  率化が計れます。
・ローカル管理ビットマップでエクステントが管理されるため、STエンキュや
  リカーシブコールが発行されなくなります。
・テンポラリ・テーブルスペース内のエクステントの再利用効率など領域面で
  の効率が向上します。
----------------------------------------------------------------------

┏─────────────────────────────────┓
┃テンポラリ・テーブルスペースの歴史                                ┃
┗─────────────────────────────────┛
(1).Oracle7.3以前
    このバージョンではPermanentテーブルスペースをテンポラリ・セグメン
    トとして使っていました。同時に発生したトランザクション単位にエクス
    テントは獲得され、処理の終了とともに解放されていたためにディクショ
    ナリ負荷やSTエンキュー、REDOログなどの作成負荷が問題でした。
(2).Oracle7.3
    TEMPORARY属性は同時に発生したトランザクションが同一セグメントのエク
    ステントを獲得し、STエンキューの問題となる領域解放を行なわないよう
    に変更されました。
    create文:
    CREATE TABLESPACE xyz… TEMPORARY
(3).Oracle8.1
    サポートされたテンポラリ・テーブルスペースはLMT管理となりました。
    create文:
    CREATE TEMPORARY TABLEPSPACE xyz TEMPFILE …. 

┏━┓
┃1┃「もっとも基本的なチェック」
┗━┛
Oracle7.3以降であれば
・Permanentテーブルスペースをテンポラリ・テーブルスペースとして使って
  いないか?
・SYSTEMテーブルスペースをテンポラリ・テーブルスペースとして使っていな
  いか?
・テンポラリ・テーブルスペースの使用量が90%を上回っていないか?

MSG:IST-00120:
    ソート処理などに使用される一時的な領域をPERMANENT領域に指定してい
    ます。
    同時に発生したトランザクション単位にエクステントのは獲得され、処理
    の終了とともに解放されている為にディクショナリ負荷やSTエンキュー、
    REDOログなどの作成負荷が高くなっています。
    テンポラリ・テーブルスペースをTEMPORARY属性に変更するか、ローカル
    管理テーブルスペースへの変更を行って下さい。
MSG:IST-00121:
    SYSTEM表領域を一時表領域に指定しているユーザーが存在しています。
    ユーザーがSYSTEM表領域を一時表領域に指定してはなりません。必ず変更
    して下さい。
MSG:IST-00144:
    テンポラリ・テーブルスペースの使用率が90%を上回っています。
MSG:IST-00145:
    テンポラリ・テーブルスペースの空き領域が0になっています。
    Autoextensible=NO
      MSG:IST-00146:テンポラリ・テーブルスペースにデータファイルを追加
      する必要があります。

SQL> select * from v$temp_space_header; ->OracleのバグでOPS、RAC環境で
     正常な値が入らないので工夫が必要

TABLESPACE_NAME FILE_ID BYTES_USED BLOCKS_USED BYTES_FREE BLOCKS_FREE RELATIVE_FNO
--------------- ------- ---------- ----------- ---------- ----------- ------------
TEMP                  2   75497472       36864          0           0            2
TEMP2                 3    1048576         512    9437184        4608            1
TEMP3                 1    1048576         512    4194304        2048            1

┏━┓
┃2┃「ディクショナリ管理(DMT)を使っているか?」
┗━┛
Oracle8i以上を使っているサイトでもTEMPORARY属性のテンポラリ・テーブル
スペースを使っているところはあります。そのような場合はLMT管理のテンポ
ラリ・テーブルスペースを薦めるべきです。

SQL>  select a.tablespace_name, a.INITIAL_EXTENT, a.NEXT_EXTENT, a.PCT_INCREASE
  2  ,b.value SORT_AREA_SIZE
  3  ,mod(greatest(a.INITIAL_EXTENT,b.value),least(a.INITIAL_EXTENT,b.value)) SORT_AREA_MOD
  4  ,c.value HASH_AREA_SIZE
  5  ,mod(greatest(a.INITIAL_EXTENT,c.value),least(a.INITIAL_EXTENT,c.value)) HASH_AREA_MOD
  6  from dba_tablespaces a, v$parameter b, v$parameter c
  7  where a.contents='TEMPORARY'
  8  and a.EXTENT_MANAGEMENT='DICTIONARY'
  9  and b.name='sort_area_size'
 10  and c.name='hash_area_size'

TABLESPACE_N INITIAL_EXTENT NEXT_EXTENT PCT_INCREASE SORT_AREA_ SORT_AREA_MOD HASH_AREA_ HASH_AREA_MOD
------------ -------------- ----------- ------------ ---------- ------------- ---------- -------------
TEMP2                 65536       65536            0 65536                  0 131072                 0

SQL> select file_name@, tablespace_nameA, bytesB
  2  from dba_data_files
  3  where tablespace_name = 'TEMP2';  -> ここではTEMPORARY TABLESPACE
     に移行するための手順で使う情報を取得

MSG:IST-00122:
    テンポラリ・テーブルスペースがディクショナリ管理テーブルスペース
    (DMT)になっています。
    ローカル管理テーブルスペース(LMT)に変更する事により以下の点が改善
    されます:
     - SORT_AREA_SIZEで指定したメモリサイズを超えたディスク・ソート処
       理の効率化が計れます。
     - ローカル管理ビットマップでエクステントが管理されるため、STエン
       キュやリカーシブコールが発行されなくなります。
     - テンポラリ・テーブルスペース内のエクステントの再利用効率など領
       域面での効率が向上します。
MSG:IST-00123:
    ディクショナリ管理テーブルスペース(DMT)からローカル管理テーブルス
    ペース(LMT)への変更手順:
    1. DROP TABLESPACE tablespace_nameA;
    2. CREATE TEMPORARY TABLESPACE tablespace_nameA
         TEMPFILE 'file_name@' SIZE nnnB REUSE
         AUTOEXTEND [ON/OFF] NEXT nM
         UNIFORM SIZE nM;
       UNIFORM SIZEは大量ディスク・ソートが頻発するサイトでは大きめに
       設定します。省略値は1MBです。SIZEは既存のデータファイルの大き
       さを設定しています。必要であればオペレーティング・システムのコ
       マンドを使用しファイルを削除後、サイズを変更します。

※ UNIFORM SIZEは:
  10M   select a.tablespace_name, b.initial_extent UNIFORM_SIZE
  2     ,c.value SORT_AREA_SIZE
  3     ,mod(greatest(b.initial_extent,c.value),least(b.initial_extent,c.value)) SORT_AREA_MOD
  4     ,d.value HASH_AREA_SIZE
  5     ,mod(greatest(b.initial_extent,d.value),least(b.initial_extent,d.value)) HASH_AREA_MOD
  6     from dba_temp_files a, dba_tablespaces b, v$parameter c, v$parameter d
  7     where a.tablespace_name=b.tablespace_name
  8     and c.name = 'sort_area_size'
  9     and d.name = 'hash_area_size'

TABLESPACE_NAME UNIFORM_SIZE SORT_AREA_ SORT_AREA_MOD HASH_AREA_ HASH_AREA_MOD
--------------- ------------ ---------- ------------- ---------- -------------
TEMP2                1048576      65536             0 131072                 0

SQL> select file_name@, tablespace_nameA, bytesB
  2  from dba_temp_files  <-dba_data_filesにTEMP TBSは入らない
  3  where tablespace_name = 'TEMP2';  -> ここではcreate手順で使う情報を取得

SORT_AREA_MOD != 0
MSG:IST-00140:
    SORT_AREA_SIZEはテンポラリ・テーブルスペースのUNIFORM SIZEで割り切
    れる値に設定すべきです。
    現在の設定:SORT_AREA_SIZE=nnnnn, tablespace_nameのUNIFORM_SIZE=nnnnn
    SORT_AREA_MOD != 0
MSG:IST-00141:
    HASH_AREA_SIZEはテンポラリ・テーブルスペースのUNIFORM SIZEで割り切
    れる値に設定すべきです。
    現在の設定:HASH_AREA_SIZE=nnnnn, tablespace_nameのUNIFORM_SIZE=nnnnn
    UNIFORM SIZE < 256KB
MSG:IST-00147:
    テンポラリ・テーブルスペースのUNIFORM SIZEは1MBあるいは1MB以上を設
    定してください。

┏━┓
┃5┃LMTのAutoextensibleのテンポラリ・データファイルを使っている場合
┗━┛
SQL>  select dd.file_name,dd.tablespace_name,dd.bytes,
  2         dd.increment_by as INCREMENT_BY,
  3         dd.increment_by*p.value as INC_BYTES,
  4         (dd.bytes - vd.create_bytes)/(dd.increment_by * p.value) as AUTOEXTEND_CNT,
  5         (dd.bytes - vd.create_bytes) as AUTOEXTEND_BYTES
  6   from  dba_temp_files dd, v$tempfile vd, v$parameter p
  7   where dd.file_id = vd.file#
  8     and p.name = 'db_block_size'
  9     and dd.increment_by > 0
 10     and dd.autoextensible = 'YES'

FILE_NAME              TABLESPACE_NAME    BYTES  INC_BYTES INCREMENT_BY AUTOEXTEND_CNT AUTOEXTEND_BYTES
---------------------  --------------- --------  --------- ------------ -------------- ----------------
/home/dbs/temp2.dbf@  TEMP2A         10485760B     2048            1              1             2048

AUTOEXTEND_CNT > 0 and AUTOEXTEND_BYTES > UNIFORM_SIZE
MSG:IST-00142:
    テンポラリ・テーブルスペースのデータファイルが自動拡張しています。
    INC_BYTES != UNIFORM_SIZE
    MSG:IST-00143:自動拡張サイズはテーブルスペースのUNIFORM SIZEと同じ大
        きさに設定すべきです。
        再作成手順:
        1. DROP TABLESPACE tablespace_nameA;
        2. CREATE TEMPORARY TABLESPACE tablespace_nameA
           TEMPFILE 'file_name@' SIZE nnnB REUSE
           AUTOEXTEND [ON/OFF] NEXT nM  <- UNIFORM SIZEと同じ値を
           UNIFORM SIZE nM;  <- UNIFORM SIZEと同じ値を
        UNIFORM SIZEは大量ディスク・ソートが頻発するサイトでは大きめに
        設定します。省略値は1MBです。SIZEは既存のデータファイルの大き
        さを設定しています。必要であればオペレーティング・システムのコ
        マンドを使用しファイルを削除後、サイズを変更します。

    INC_BYTES < UNIFORM_SIZE
    MSG:IST-00148:
        自動拡張を行う単位 INCREMENTAL_BYTES が UNIFORM_SIZE より小さ
        いため1回の拡張で複数の自動拡張が行われてしまいます。

  INCREMENT_BY > 10
    MSG:IST-00149:
        テンポラリ・データファイルの自動拡張が多く発生しています。
        自動拡張が多く発生している場合、DISK上のファイルのフラグメント
        が原因でパフォーマンスに影響がでる可能性があります。
        

┏━┓
┃6┃PGA実行メモリー管理
┗━┛
SQL> select max(decode(name,'pga_aggregate_target',value)) PGA_AGGREGATE_TARGET
  2  ,max(decode(name,'workarea_size_policy',value)) WORKAREA_SIZE_POLICY
  3  ,max(decode(name,'sort_area_size',value)) SORT_AREA_SIZE
  4  ,max(decode(name,'hash_area_size',value)) HASH_AREA_SIZE
  5  from v$parameter
  
WORKAREA_SIZE_POLICY    AUTOを設定するとSORT_AREA_SIZEなど自動計算
PGA_AGGREGATE_TARGET    インスタンスに使用可能なPGAメモリーの最大量を指定
              0を指定するとPGA実行メモリー管理は無効
SQL> select max(decode(name,'sorts (memory)',value)) SORT_MEMORY
  2  ,max(decode(name,'sorts (disk)',value)) SORT_DISK
  3  ,max(decode(name,'sorts (disk)',value))
  4  /(max(decode(name,'sorts (memory)',value))) SORT_RATE
  5  from v$sysstat

MEMORY_BUSY=TRUE
  Oracle9iで、
  WORKAREA_SIZE_POLICY = AUTO
    PGA_AGGREGATE_TARGET > 0
    MSG:IST-00104:
        メモリ不足が発生しています。PGA_AGGREGATE_TARGETで指定するPGA
        実行メモリの最大量を減らしてください。
  それ以外
  SORT_RATE < 5% and SORT_AREA_SIZE > 64K and HASH_AREA_SIZE > 128K
    MSG:IST-00105またはIST-00106(keyworkが変わる為):
        メモリ不足が発生しています。SORT_AREA_SIZE, HASH_AREA_SIZEを減
        らしてください。

MEMORY_BUSY=FALSE
  Oracle9iの場合はWORKAREA_SIZE_POLICY = FALSEである事
  SORT_DISK_PER_HOUR(一時間当たりのディスクソート回数) > 10
    MSG:IST-00107:
        ディスク・ソートを減らすためにSORT_AREA_SIZEを増やしてください。
        時系列ディスク・ソート回数ヒストグラム


┏─────────────────────────────────┓
┃PI Knowledge Center  ─ コンテンツ ─                             ┃
┗─────────────────────────────────┛
●自動拡張データファイル●
<KnowledgeCenter:keyword=AUTOEXTEND>
データファイルの自動拡張機能ON
CREATE TEMPORARY TABLESPACE tablespace_name
  TEMPFILE 'file_name' SIZE nnn REUSE
  AUTOEXTEND [ON/OFF] NEXT nMを
  UNIFORM SIZE nM;

AUTOEXTEND  データ・ファイルの自動拡張の許可と禁止を切り替えます。 
OFF         オフになっている場合、自動拡張を使用禁止にします。NEXTおよ
            びMAXSIZEは0(ゼロ)に設定されます。さらにALTER DATABASE 
            [DATAFILE | TEMPFILE] AUTOEXTEND コマンドを使用する場合は、
            NEXTおよびMAXSIZEに値を再指定する必要があります。
ON          自動拡張を使用可能にします。
NEXT        自動拡張のサイズ(ディスク領域)を設定します。

ロー・デバイスをサポートするオペレーティング・システムでは、
CREATE TABLESPACEコマンドでロー・デバイスをデータ・ファイルとして指定
すると、STORAGE句のREUSEキーワードは無視されます。


●ソート領域●
<KnowledgeCenter:keyword=SORT_AREA_SIZE, HASH_AREA_SIZE>
ソート領域は実メモリ(RAM)上に獲得されるワーク領域です。
この領域はOrder By, Group ByやCreate Indexなどのソート処理で使用されま
す。この領域で処理ができないとディスク上のテンポラリ・テーブルスペース
が使われます。パフォーマンスのためにはできるだけテンポラリ・テーブルス
ペースを使用しないほうが良いのですが実メモリを圧迫してページング(スワッ
ピング)を誘発するほど大きく設定するべきではありません。

実メモリのサイズを見るOS(UNIX)コマンド:
AIX        lsdev -C|grep mem
Tru64      uerf -r 300 | grep -i mem
HP-UX      swapinfo -tm
Linux      free
Solaris    prtconf|grep -i mem 

create indexなどの特別に大量のソート領域を必要とする処理は以下のコマン
ドでセッション単位で設定することが望ましいです:
SQL> alter session set sort_area_size=nnnnnn;

●PGA実行メモリー管理●
<KnowledgeCenter:keyword=PGA_AGGREGATE_TARGET, WORKAREA_SIZE_POLICY>
自動SQL実行メモリー管理
複雑な長時間実行問合せのパフォーマンスは、プログラム・グローバル領域
(PGA)は使用可能なメモリーに大きく依存しています。Oracle8i以前では、
管理者は 多数の初期化パラメータを注意深く調整することによってPGAのサイ
ズを設定していました。Oracle9iでは、PGAメモリーの 管理が完全に自動化さ
れます。管理者は、新たに導入されたPGA_AGGREGATE_TARGETパラメータを使用
することにより、 インスタンスに使用可能なPGAメモリーの最大量を指定しま
す。

データベース・サーバーは、インテリジェントな方法でこのメモリーを様々な
アクティブな問合せに自動的に割り当て、パフォーマンスを最大限にし、最も
効率的なメモリー使用率を確保します。さらに、Oracle9iは変化する処理負荷
に適応することができるため、システムの負荷に関係なくリソースを効率的に
使用します。インスタンスで使用可能なPGAメモリーの量は、
PGA_AGGREGATE_TARGETパラメータの値を変更することによって動的に変更でき、
アクティブなインスタンスに対してオンラインでPGAメモリーを追加したり削除
することができます。自動モードにすれば、管理者はSORT_AREA_SIZE、
HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE、および CREATE_BITMAP_AREA_SIZE
などのパラメータを使用して手動で個々の作業領域のサイズを調整する必要は
ありません。 

自動SQL実行メモリー管理機能は、パラメータWORKAREA_SIZE_POLICYを「AUTO」
に設定すると使用可能になります。下位互換性のために、Oracle9iでは手動PGA
管理モードも引き続きサポートされます。手動モードは、WORKAREA_SIZE_POLICY
パラメータを「MANUAL」に設定するか、またはPGA_AGGREGATE_TARGETに値を指
定しないことによってアクティブになります。 

この機能は、DBAがDSSアプリケーションのメモリー使用率を調整するために必
要な時間を短縮するのに役立ちます。メモリー使用率の改善によって節約でき
たメモリーは、多数のユーザーがシステムに存在する場合のスループットの向
上や問合せの応答時間の短縮につながります。


___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
■開発フリートーク                                   〔by 〕 柴本 憲一
___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
大家好!
入社して2年目ということもあり、雑多なこと(主にチャートやインストーラ
の作成など)を担当しています。今期からは、次期製品に入る予定のAction
Toolsの制作に関わっています。

他の人に比べ担当分野に一貫性のない私ですので、今回はチャートの制作過程
なぞ話題にしてみようかと思います。

さて、1年ほど前に遡りまして、入社したての頃はそれこそ右も左もわからず、
ただひたすら先輩方の書いたチャートのソースとにらめっこしている毎日でし
た。まだ仕事とも言えず、技術力のある先輩方から見ればほんのお遊びに過ぎ
なかったことと思います。

ご存知の方もいらっしゃるかと思いますが、チャートはTime AnalysisやHint
Reportといったツールの中でよく見かけます。PIでロギングしたデータを直感
的にわかりやすく伝える必要がありますので、見え方にも気を遣います。

チャートはJavaScript(以下JS)というブラウザに依存する言語を使用してク
ライアント側で随時作成されますが、残念なことにJSには描画機能がありませ
ん。そこで、VML(Vector Markup Language)というInternet Explorer(以下IE)
独自のプラグインの助けを借りることになります。

このVMLというのがくせ者でして、時折制作者が全く予期しなかった動きをし
てくれます。例えば、ブラウザで表示しきれないくらい大きなチャートを描画
しようとしたり、微妙にプロットの位置がずれたりと、開発中はそのやんちゃ
ぶりにほとほと手を焼きました。

本来はより精度の高いAdobe社のSVG(Scalable Vector Graphics)というプラグ
インを使うところですが、IE標準のプラグインには含まれておりませんので、
別途インストールする手間がかかります。安易にSVGに切り替えてしまうと外
部ネットワークに容易に接続できない環境ではプラグインを組み込むこと自体
容易ではありませんし、チャートも閲覧できなくなってしまいます。そのよう
なことがないようVMLを使っているというのが実状です。

これからのチャートの方向性としましては、

  (1) 描画速度の向上
  (2) 種類の増加
  (3) 機能の拡充

などを実現していきたいと考えております。

とりあえずチャートはこのくらいにしておいて、次は悩み多きインストーラに
ついてお話できたらと思います。

___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
■お知らせ・・・
___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<ご意見・ご感想をお寄せください>
メルマガに関するご意見・ご感想をお送りください。

___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
■編集者より
___________________________________
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
今年の夏は「涼しくて海にもプールにも行けな〜い!」なんて言ってたのに、
ここに来て連日の猛暑。「ごめんなさーい!もう文句言わないから涼しいまま
でいて〜」と、若干夏バテ気味の私ですが、皆さま元気でお過ごしですか?
そして、もうひとつ「ごめんなさい!」不定期とは言いつつも、8月は一度も
メルマガを配信できなくて本当に申し訳ありませんでした。それなのに、毎日
登録者数が増えていて、更に解除しないで待っていてくださった方々に心から
感謝してます。えっ?メルマガのこと忘れてたってぇ???そんなぁ〜 by KA

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録・解除は以下のURLで行うことができます。
http://www.insight-tec.com/html/mailmagazine/d_mail.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<海の見える開発室  −解き放てmind!−>
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com

本メールマガジンに掲載された記事を許可なく転載することを禁じます。
Copyright(c) 2003, Insight Technology, Inc.,  All Rights Reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

 メールマガジン解除