2017-08-09 9 views
0

私はLinux Ubuntu 16.04を使用しています。また、RazorSQLを使用してさまざまなデータベースにアクセスしています。私はクライアントのSQL Server(Microsoft 2008 R2)にアクセスして、5000個以上の行を含むクエリからテーブルを生成し、約5個の列を持っています。列の1つは画像データ型です。クエリを実行するたびにタイムアウトしてフリーズするので、ターミナルからxkillを実行して閉じる必要があります。私が取り組んでいるプロジェクトのすべての結果を取得する必要があるので、一度に10個しか取得できません。大量の行とデータにアクセスすると、SQL Server GUIがフリーズし続ける

GUIのフリーズを防止する方法についての提案がありますか?使用するにはより良いGUIを提案できますか?

これはおそらくその原因となっているクエリですか?

SELECT 
    a.* 
    , cast(b.Bytes as varbinary(max)) as Bytes 
FROM 
    (
SELECT DISTINCT 
    a_inner.Number 
    , a_inner.Latitude 
    , a_inner.Longitude 
    , b_inner.RetiredOn 
    , b_inner.NonSaleable 
    , a_inner.Name 
    , a_inner.Zipcode 
    , b_inner.Oid 
    , c_inner.TabId 
FROM 
    "AM-Martin".dbo.CpCore_Site a_inner 
    INNER JOIN "AM-Martin".dbo.CpSm_Face b_inner on b_inner.SiteId = a_inner.Oid 
    INNER JOIN "AM-Martin".dbo.EyesOn_Face c_inner on b_inner.Oid = c_inner.Oid 
WHERE 
    b_inner.RetiredOn > GETDATE() 
    AND a_inner.Number LIKE N'%LA%' OR a_inner.Number LIKE N'%LC%' OR a_inner.Number LIKE N'%BH%' 
    AND b_inner.Latitude > 0.0 
    AND b_inner.NonSaleable = 'False' 


) AS a 
CROSS APPLY(SELECT TOP 1 
       Bytes 
      FROM "AM-Martin_bin".dbo.CpCore_Image b 
      WHERE a.Oid = b.OwnerId) b; 
+3

どのくらいのメモリがありますか? RazorSQLはどれだけのメモリを使用していますか? RazorSQLのサポートに連絡することを検討しましたか?アプリケーションがフリーズしている場合、私はあなたの同僚ができることは何もないと考えていますが、一度に5000行すべてをアプリに返さないようにすることをお勧めします。 –

+0

私のコンピュータには、実際のGUIがメモリ不足で十分なメモリを持っています。私はRazorsqlのサポートに行きました。そして、私は彼らがメモリを増やすために指示したとおりのことをしましたが、それは最大です。これは、より良いGUIがあるのか​​どうか疑問に思っています。私は一度にいくつかの行を取得して、それが動作するかどうかを調べるつもりです。 –

答えて

1

これを行う方法がわかりました。 RazorSQLは最大324Mbしか許されませんでした。Sublime Textでその数を実際に検索しなければならなかったので、コードを含むファイルが見つかったので、最大324Mbを変更しました。ファイルはrazorsql.shファイルだったと私は変更のコードはここにあると私は変わっラインは、それが10000M(10ギガバイト)と言う4行目です:

#!/bin/sh 
CWD=$(dirname "$0") 
CMD="$CWD/razorsql.jar" 
$CWD/jre/bin/java -Xms256M -Xmx10000M -client -jar ${CMD} 
RC=$? 
if [ ${RC} != 0 ]; then 
     echo "Error returned code found. Retrying . . ." 
     $CWD/jre/bin/java -Xms256M -Xmx2048M -client -jar ${CMD} 
     RC2=$? 
     if [ ${RC2} != 0 ]; then 
       echo "Trying local JRE . . ." 
       java -Xms256M -Xmx2048M -client -jar ${CMD} 
     fi 
fi 

彼らは彼らのサポートにこれを説明していないので、私は、私自身の掘削をしなければならなかった。

関連する問題