SQLiteは素晴らしいデータベースですが、Windowsで問題が発生しています。最初にアプリケーションを起動すると、100MBのデータベースに対してクエリを実行するまでに最大50秒かかることがあります。その後の負荷はその時間の10%を要します。WindowsプレキャッシュSQLiteの問題
SQLiteのメーリングリスト上でいくつかの議論の後、私はバグがWindowsである」 を聞いていますそれは積極的に前のキャッシュ大きなデータベースファイル
は - 。ファイルの大きな塊で読み込む - それはように見えるようにプログラムがOutlookのような
は、彼らが実際よりも優れている場合、彼らはの
わずか数バイトを求めるとき、彼らは
が読み込まれているどのくらいのを制御することはできませんので。残念ながら
が、これは、それが他の人がぎくしゃくを動作させますいくつかのプログラムをスピードアップファイル。"
この問題は、すべてがSQLiteから発生している間に進捗情報を取得する方法がないために複雑になります。したがって、ユーザーは何かが壊れていると思います。 (私はダミーの進捗報告を表示することができますが、それはシャープなツールにとっては本当に駄目です。)
私はプリキャッシングをグローバルにオフにする方法があると思いますが、これをプログラム的に回避する方法はありますか?
間違いなく。私は同様のサイズのsqliteデータベースを使って作業してきましたが、この問題は発生しませんでした。 –
はい私はあなたが正しいと思います。クエリは単純ではありません。私はSQLiteが何かをしていると思っていますが、何をしたいのか分からないコードに陥ることはありません。その後のリクエストはこの時間の最大20%であるため、明らかに1回のイベントです。 –
あなたはそれをプロファイラで実行して、どの機能がその時間をすべて食べるのか分かりませんか? – jalf