Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
tsuyoshi
Partner - Creator
Partner - Creator

QVサーバー11.20からQVサーバー12.40へのバージョンアップ

お世話になります。QVS11.20の年内EOSに対応して QVS12.40に上げようとしています。
11.20ではOSとしてServer2008R2を長く使っていましたが、QVSを12.40に上げるのと同時にOSもServer2012R2に上げようととも考えています。

些細な心配なのですが、V11.20からいきなりV12.40最新リリースに移行しようとしていますが、V12.10など低いVerから順次アップすべきなど、何か注意事項があればご教示くださると幸いです。

どうぞ宜しくお願いいたします。

1 Solution

Accepted Solutions
kentaroWakamatsu
Creator II
Creator II

バージョンアップ自体は、順次実行するメリットはおそらく無いと思います。

ただ、ところどころV12は仕様が変わっているので、事前調査はしておいた方が良いと思います。

若干間違いがあるかもしれませんが、私が認識している範囲だと、以下のような変更がありました。

 

 

①ログファイルの出力タイミングがリロード終了時に変更になっています。

ロード中に出力されるログ情報を利用するようなスクリプトがある場合、ファイル分割する必要があります。

 

②“EXECUTE” ステートメントを使用するための設定方法(設定先)が変わっています。

マイナーバージョンの違いでも差があるケースがある(V12V12.10で違いました)ので、12.40の設定先を確認された方が良いと思います。

 

③スクリプト内での一部のファイルパス解釈方法が変わっています。

たとえば、QvdNoOfRecords関数のようなQVD検索関連の関数利用時、記述箇所よりも前の部分に

 DIRECTORY D:\temp;

といった、DIRECTORY を指定する記述をしていると、V11の場合は以下の記述1、2ともに問題ないのですが、V12では1の取得先は'D:\temp\D:\temp\data.qvd'を指定しまい、DIRECTORYで指定している部分が重複してしまいます。

 サンプル1: LET V_Rows = QvdNoOfRecords('D:\temp\data.qvd');

 サンプル2: LET V_Rows = QvdNoOfRecords('data.qvd');

INCLUDEを利用している場合なども、同様の注意点が必要です。

 

Remコメントがログファイルへ出力されない。

 

QVエンジンの思考が縦型から横型へ変更になっています。

このため、パフォーマンスを最適化するための手法が変わってくると思います。

個人的な感想ですが、テーブルを正規化して多数かかえている場合のように、リレーション数多い場合には、V12以降の方がパフォーマンスが悪かったように思います。

その他、パフォーマンスの視点で言うと、変数やステートが多数ドキュメント内にある場合も、V12だと速度が落ちました。

このあたりは、スクリプト内だけで利用する変数はリロード終了時に変数を削除する記述を行ったり、出来るだけステートを抱えないようにするなど、工夫が必要だと思います。

(私が検証した時は、V12でももう少し古いバージョンだったと思いますが。)

 

 

 

②および③に関しては、あくまで個人で利用しているものなのでスクリプトの内容によっては取得漏れが発生する可能性もありますが、下記の記述がある改修対象となるQVWを特定するツールを添付しておきますので、よければ使ってみてください。

 ・execute の利用

 ・directory および include の重複利用

 ・directory および qvdfunction の重複利用

 

使い方は、スクリプト内の変数 ’V_Dir' をお使いの環境のログファイル保存先に変更していただき、リロードするだけです。前日のログに絞り込んで取得するようにしていますので、別日付が良い場合は変数’V_Date’を変更して下さい。

ロード後に表示される左上の帳票のファイル名をクリックすると、右側へログファイルが表示され、該当箇所に色がつきます。

View solution in original post

4 Replies
kentaroWakamatsu
Creator II
Creator II

バージョンアップ自体は、順次実行するメリットはおそらく無いと思います。

ただ、ところどころV12は仕様が変わっているので、事前調査はしておいた方が良いと思います。

若干間違いがあるかもしれませんが、私が認識している範囲だと、以下のような変更がありました。

 

 

①ログファイルの出力タイミングがリロード終了時に変更になっています。

ロード中に出力されるログ情報を利用するようなスクリプトがある場合、ファイル分割する必要があります。

 

②“EXECUTE” ステートメントを使用するための設定方法(設定先)が変わっています。

マイナーバージョンの違いでも差があるケースがある(V12V12.10で違いました)ので、12.40の設定先を確認された方が良いと思います。

 

③スクリプト内での一部のファイルパス解釈方法が変わっています。

たとえば、QvdNoOfRecords関数のようなQVD検索関連の関数利用時、記述箇所よりも前の部分に

 DIRECTORY D:\temp;

といった、DIRECTORY を指定する記述をしていると、V11の場合は以下の記述1、2ともに問題ないのですが、V12では1の取得先は'D:\temp\D:\temp\data.qvd'を指定しまい、DIRECTORYで指定している部分が重複してしまいます。

 サンプル1: LET V_Rows = QvdNoOfRecords('D:\temp\data.qvd');

 サンプル2: LET V_Rows = QvdNoOfRecords('data.qvd');

INCLUDEを利用している場合なども、同様の注意点が必要です。

 

Remコメントがログファイルへ出力されない。

 

QVエンジンの思考が縦型から横型へ変更になっています。

このため、パフォーマンスを最適化するための手法が変わってくると思います。

個人的な感想ですが、テーブルを正規化して多数かかえている場合のように、リレーション数多い場合には、V12以降の方がパフォーマンスが悪かったように思います。

その他、パフォーマンスの視点で言うと、変数やステートが多数ドキュメント内にある場合も、V12だと速度が落ちました。

このあたりは、スクリプト内だけで利用する変数はリロード終了時に変数を削除する記述を行ったり、出来るだけステートを抱えないようにするなど、工夫が必要だと思います。

(私が検証した時は、V12でももう少し古いバージョンだったと思いますが。)

 

 

 

②および③に関しては、あくまで個人で利用しているものなのでスクリプトの内容によっては取得漏れが発生する可能性もありますが、下記の記述がある改修対象となるQVWを特定するツールを添付しておきますので、よければ使ってみてください。

 ・execute の利用

 ・directory および include の重複利用

 ・directory および qvdfunction の重複利用

 

使い方は、スクリプト内の変数 ’V_Dir' をお使いの環境のログファイル保存先に変更していただき、リロードするだけです。前日のログに絞り込んで取得するようにしていますので、別日付が良い場合は変数’V_Date’を変更して下さい。

ロード後に表示される左上の帳票のファイル名をクリックすると、右側へログファイルが表示され、該当箇所に色がつきます。

kentaroWakamatsu
Creator II
Creator II

その他オブジェクト系では、コンテナボックスのタブが消えると言う現象が発生し、これに関しては作り直しました。

tsuyoshi
Partner - Creator
Partner - Creator
Author

有難うございました。ツールも使わせて頂きました。

⑤QVエンジンの思考が縦型から横型へ変更になっています。

ここが一番の難所のような気がします。QV11.20であまりに細かくグラフや帳票を作りこんでしまっており
Senseには全くUI移行できないためQV12.40に行こうとしています。レコード数が多くMEM利用やレスポンス
が難所のようです。

また何かありましたらご教示ください。

tsuyoshi
Partner - Creator
Partner - Creator
Author

有難うございます。こちらも注意して見ていきたいと思います。