2016-11-22 22 views
0

私はSlickを使用して非常に単純なクエリを実行しています。ログによると、実際のデータベースコールは約500μsしかかかりませんが、db.runコールと結果の間の時間は非常に長くなります(約200ms)。Scala Slick 3高クエリ待ち時間

クエリを実行するコードスニペットを以下に示します。これは、クエリ実行前後のタイムスタンプを非常に素朴に表示します;)予測テーブルは、ケースクラスにマップされた非常に単純な4列テーブルです。

def getPredictionById(predictionId: Int) = { 
    println(new Date().getTime()) 
    val r = Await.result(db.run(Tables.Predictions.filter(p => p.predictionId === predictionId).result.head), 1 second) 
    println(new Date().getTime()) 
    r 
    } 

ログはデバッグモードで非常に長いので、私はそれらをペーストビンに入れました。

http://pastebin.com/UpuGQJKd

私は多分、数ミリ秒のレイテンシの合計を期待していたが、私はそれを達成する方法のようにわからないと思います。

は、私は、SQL Server 2016、freeslickと

答えて

0

問題は、Microsoftの公式ドライバを使用して解決net.sourceforge.jtdsの代わりJTDSを使用しています

<dependency> 
    <groupId>com.microsoft.sqlserver</groupId> 
    <artifactId>sqljdbc4</artifactId> 
    <version>4.0</version> 
</dependency> 

FYIドライバクラスがcom.microsoft.sqlserverです。 jdbc.SQLServerDriver

合計時間は現在〜20msです。その後、C3POを追加すると、待ち時間は約4msになります。これは私が期待していたものです。

関連する問題