几天来,我一直在尝试使用 SQL Server Azure 作为本地 Atlassian Crowd 的数据存储,但遇到了巨大的性能问题。
例如,人群管理应用程序非常慢,几乎无法使用。
我想知道成功建立这种解决方案的人是否可以给我一些建议。
到目前为止我做了什么:
- 在本地 SQL2008R2 数据库上设置本地 Atlassian Crowd 2.4.2
- 编写数据库脚本并在 azure 数据库上运行脚本(无法直接在 azure 上设置,因为设置脚本错过了表 hibernate_unique_key 上的 azure 强制聚集索引)
- 将强制聚集索引添加到 azure hibernate_unique_key 表
- 使用 ssl 设置 jdbc 连接
我将人群连接到数据库没有问题,但一切都很慢。人群启动需要大约 5 分钟,而使用本地 sql 服务器需要大约 20 秒。到人群管理 Web 控制台的每次往返都需要大约 30 秒。
我的数据库小于 1Mb。azure 中的查询执行摘要不显示任何有问题的查询。
我忘了提到 SQL Azure Db 对 SQL Server Manager 或本地 .Net Web App 的反应性很强
我尝试了 jtds jdbc 驱动程序和 MS JDBC 驱动程序 4.0,两者都具有数据加密功能。我尝试了人群提供的两种sqlDialect。它保持非常缓慢。
我尝试按照 MS JDBC 4.0 驱动程序(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime、KeepAliveInterval、TcpMaxDataRetransmission)的说明为 Azure 设置特殊注册表项
也许它来自:
- 我不是从 Azure 上的人群完成的干净设置开始的事实(因为聚集索引问题)
- Sql Azure 使用 UTC 时间,使“某事”每次都过期。
如果有人对这个问题有建议,我会很高兴。