在我们的java应用程序中,我们需要使用https协议与SSL上的服务器列表进行通信.要通信的服务器列表将在运行时更改.最初我们没有任何服务器的证书.在运行时,我们将获得新服务器的证书并将公钥证书添加到信任库中; 与服务器的任何新https连接都应使用更新的信任库.
我们认为我们应该使用两个信任库,一个cacerts(默认一个附带jre)和其他包含我们在列表中动态添加/删除的服务器的证书.这将确保我们不修改java的默认TrustStore(cacerts).
请建议如何实现这一目标.此外,有没有办法只为java中的特定线程使用特定的信任存储,以便其他(现有的和新的)线程仍应使用默认的java trueststore(cacerts),并且一个特定的线程将使用特定的信任库服务器.
谢谢,迪帕克
我们发现,如果where子句包含参数化值而不是字符串文字,则SQL Server使用索引扫描而不是索引搜索.
以下是一个例子:
SQL Server在以下情况下执行索引扫描(where子句中的参数)
declare @val1 nvarchar(40), @val2 nvarchar(40);
set @val1 = 'val1';
set @val2 = 'val2';
select
min(id)
from
scor_inv_binaries
where
col1 in (@val1, @val2)
group by
col1
Run Code Online (Sandbox Code Playgroud)
另一方面,以下查询执行索引搜索:
select
min(id)
from
scor_inv_binaries
where
col1 in ('val1', 'val2')
group by
col1
Run Code Online (Sandbox Code Playgroud)
有没有人观察到类似的行为,以及他们如何解决这个问题以确保查询执行索引搜索而不是索引扫描?
我们无法使用forceseek表提示,因为SQL Sserver 2005支持forceseek.
我也更新了统计数据.非常感谢你的帮助.