问题描述
我不知道让谷歌为我回答这个问题的魔法关键字,如果这是广泛可用的知识,请原谅我。
在代码中编写查询语句时,结果字符串要么难以阅读(这个例子很简单,但希望你能明白这一点):
var sqlString = "Select e.f_name as FirstName,e.l_name as LastName from Employees as e where start_date > '2020-05-01'";
或者查询将易于阅读但包含大量额外的空格和比必要的别名长:
var sqlString =
@"Select emp.f_name as FirstName,emp.l_name as LastName
From Employees as emp
Where start_date > '2020-05-01'";
2 个问题:
ado.net 或 Oracle.ManagedDataAccess 是否会自动执行任何类型的字符串压缩以使其对于非常大的查询表达式不存在问题?
如果上面的答案是否定的,那么是否有一个库可以智能地去除空格并将长别名替换为短别名而不会弄乱查询字符串中的空格/文本?
解决方法
ado.net 或 Oracle.ManagedDataAccess 是否会自动执行任何类型的字符串压缩以使其对于非常大的查询表达式不存在问题?
快速网络在几十年前主要使这成为一个非问题。对于大多数情况,这真的无关紧要。
但 ODP.NET 是少数具有客户端 statement cache 的提供商之一,如果您愿意,它甚至可以与连接池一起使用。使用语句缓存准备语句,后续调用不会通过网络发送查询文本。
并且您始终可以将 SQL 查询格式化为可读、可粘贴并最小化空格,如下所示:
var sqlString = @"
Select
emp.f_name as FirstName
emp.l_name as LastName
From Employees as emp
Where start_date > :startDate
";