2014年5月19日月曜日

Virtuoso 42000 Error

長いSPARQL文を投げると、下記のようなエラーが出る場合がある。

Virtuoso 42000 Error The estimated execution time 1498 (sec) exceeds the limit of 400 (sec).

日本語訳するとこうで、

ビルトーソ 42000 エラー 推定実行時間1498(秒)は、400(秒)の制限を超えています。

これはおそらく、
「このSPARQLはクソ難しいので実行すると1498秒もかかりそうだからやりたくないよ~」
といっているのだと思う。

virtuoso.ini の中に、MaxQueryCostEstimationTime という設定項目があるので、
そこの値を大きくしてあげれば、長いSPARQL文も実行できるようになる。

ちなみにデフォルトは 400 でした。
適当に4000にしてみました。

MaxQueryCostEstimationTime = 400   ; in seconds
  ↓
MaxQueryCostEstimationTime = 4000   ; in seconds




2014/08/20 追記
少々上げたぐらいではすぐに同じエラーにひっかかるので無制限にしてしまったほうが楽、とうことで、行自体をコメントアウトすると無制限になります。
 ;MaxQueryCostEstimationTime = 4000   ; in seconds


 下記のページ参考になりました。ありがとうございます。
http://wiki.lifesciencedb.jp/mw/index.php/BH12.12/SPARQLthon8/TogoGenome-Virtuoso7