1
我在Oracle中有一个名为MESSAGE的表,它有一个TERMINALID(VARCHAR2 8 NOT NULL)列;并且该列有一个索引。该表中约有3亿条记录。现在Dapper,Oracle和Command参数
,这工作正常(0.0秒),:
using (var con = new OracleConnection(connectionString2))
{
try
{
con.Open();
var parameters = new DynamicParameters();
parameters.Add("PTerminalId", value: "04447777", dbType: System.Data.DbType.AnsiString);
Console.WriteLine("ora - messages #{0}", con.Query<decimal>("SELECT COUNT(*) FROM MESSAGE WHERE TERMINALID=:PTerminalId", param: parameters).FirstOrDefault());
}
finally { con.Close(); }
}
而且失败(超时):
using (var con = new OracleConnection(Properties.Settings.Default.GSMConnectionString2))
{
try
{
con.Open();
Console.WriteLine("ora - messages #{0}", con.Query<decimal>("SELECT COUNT(*) FROM GSM.MESSAGE WHERE TERMINALID=:PTerminalId", param: new { PTerminalId = "04447777" }).FirstOrDefault());
}
finally { con.Close(); }
}
为什么如此?
第一个代码在0.0秒内运行;第二个代码超时。 – 2013-02-19 12:03:16
有没有办法在第二个查询中指定参数的数据类型? – 2013-02-19 12:12:23
否;我不喜欢它。 – 2013-02-19 12:30:56