我正在使用 Linux Ubuntu 16.04 并使用 RazorSQL GUI 来访问各种数据库。我正在访问客户端 SQL Server(Microsoft 2008 R2)以从包含超过 5000 行且有大约 5 列的查询中生成一个表。其中一列是图像数据类型。每次我运行查询时,它都会超时并卡住,所以我需要从我的终端运行 xkill 来关闭它。我需要获取我正在处理的项目的所有结果,所以我不能一次只获取 10 个。
有没有人对如何防止 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;
最佳答案
找到了如何去做。 RazorSQL 只允许最大 324Mb 我不得不在 Sublime Text 中实际搜索这个数字,我找到了包含代码的文件所以我改变了 324Mb 的最大值。该文件是 razorsql.sh 文件,我更改的代码在此处,我更改的行在第四行,其中显示 10000M (10GB):
#!/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
他们没有在他们的支持中解释这一点,所以我不得不自己做一些挖掘。
关于SQL Server GUI 在访问大量行和数据时保持卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45598501/