我有一张带有注册号的车辆表,并希望选择一些用户提供的"从"和"到"值之间的子集.
所以我们说这个表看起来像这样:
id reg_num
1 DD1111
2 DD1112
3 DE2245
4 EE5678
5 EF6547
Run Code Online (Sandbox Code Playgroud)
我到目前为止的SQL看起来像这样:
select *
from vehicles
where reg_num >= 'DD' -- this value is user supplied
and reg_num <= 'DE' -- and so is this one
Run Code Online (Sandbox Code Playgroud)
应该(按我的想法)返回:
1 DD1111
2 DD1112
3 DE2245
Run Code Online (Sandbox Code Playgroud)
但相反,只返回:
1 DD1111
2 DD1112
Run Code Online (Sandbox Code Playgroud)
我想,SQL服务器看到"DE2245"作为比"德"更大,因此排除了该行.
我的问题:如何让SQL服务器包含以'DE'开头的所有行?
我们的生产系统有一个约5秒的查询,但在我们的镜像系统上(尽可能与生产相同)和开发系统需要不到1秒.
我们检查了查询计划,我们可以看到它们有所不同.同样从这些计划中我们可以看出为什么一个人比另一个人服用更长时间.数据,schame和服务器类似,存储过程相同.
我们知道如何通过重新排列的加入,增加提示来解决它,但是此刻它会更容易,如果我们没有做对存储过程(文书)的任何变化.我们还尝试了一个sp_recompile.
什么可能导致两个查询计划之间的差异?
系统:Win2k3 Enterprise上的SQL 2005 SP2 Enterprise
更新:感谢您的回复,结果证明这是统计数据.见下面的摘要.
sql sql-server stored-procedures sql-server-2005 sql-execution-plan
如果下拉列表没有选定值,是否有办法包含默认的空选项(或文本)?
我真的很讨厌IDictionary<TKey, TValue> [key]如果字典中不存在密钥会如何抛出异常.
当然有TryGetValue(),但似乎已经针对性能而非可用性进行了优化.
所以我想,哦,我只是为它做一个扩展方法 - 我做了:
public static class CollectionExtensions
{
public static TType GetValueOrDefault<TKeyType, TValue, TType>(this IDictionary<TKeyType, TType> dictionary, TKeyType key)
{
TType value = default(TType);
// attempt to get the value of the key from the dictionary
// if the key doesn't exist just return null
if (dictionary.TryGetValue(key, out value))
{
return value;
}
else
{
return default(TType);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常除了我似乎无法得到类型推断工作.
显然我希望能够做到以下几点:
var extraDataLookup = new Dictionary<string, string>();
extraDataLookup["zipcode"] = model.Zipcode;
Run Code Online (Sandbox Code Playgroud)
然后能够访问该值: …
我最近开始学习Perl,我最近的任务之一就是搜索一堆特定字符串的文件.用户提供目录名作为参数,程序将搜索该目录中的所有文件以查找该模式.使用readdir()我已经设法构建了一个包含所有可搜索文件名的数组,现在需要搜索模式的每个文件,我的实现看起来像这样 -
sub searchDir($) {
my $dirN = shift;
my @dirList = glob("$dirN/*");
for(@dirList) {
push @fileList, $_ if -f $_;
}
@ARGV = @fileList;
while(<>) {
## Search for pattern
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 如上所述,手动加载@ARGV数组并使用<>运算符扫描各行,还是应该单独打开/扫描/关闭每个文件?如果这个处理存在于子程序而不是主函数中会有什么不同吗?
我很好奇是否有人对提供MSMQ访问的Java库有任何建议?我已经下载了J-Integra Java-COM库的试用版,并构建并运行了他们的MSMQ示例应用程序,但我很好奇是否有任何好的(免费:))替代品.我遇到了一些JNI实现,比如jMSMQ和其他几个,但是如果可能的话我宁愿避免使用JNI.
我们还调查了一些.NET < - > JMS互操作解决方案,如JNBridge(使用ActiveMQ).我认为我们公司决定将我们的排队集中在MSMQ中,这将是我们理想的解决方案.
我们希望在.NET端使用WCF(netMsmq或msmqIntegration).我有点担心java方面将如何处理WCF消息(二进制编码),但应该有那些选项(带有文本编码和MSMQ传输的customBinding?),所以我不太担心.主要担心在Java中访问MSMQ.
我们的另一个选择是在每个队列的输入端放置一个瘦Web服务层,并以这种方式实现互操作.然而,性能有点令人担忧.
有什么建议?非常感谢任何人的时间.
在教会如何在类中创建哈希表之后,我不明白哈希数据何时有用.在我看来,所有散列都是将信息存储在数组中的半随机位置.我想知道在存储之后如何使任何数据变得有用.
我的问题是:散列信息有益的一些例子是什么?如何以任何有组织的方式检索数据?它似乎被放置在难以检索的任意位置.
将用户输入的搜索词转换为可用于where子句进行全文搜索以查询表并获取相关结果的查询的最佳方法是什么?例如,用户输入以下查询:
+"e-mail" +attachment -"word document" -"e-learning"
Run Code Online (Sandbox Code Playgroud)
应该翻译成:
SELECT * FROM MyTable WHERE (CONTAINS(*, '"e-mail"')) AND (CONTAINS(*, '"attachment"')) AND (NOT CONTAINS(*, '"word document"')) AND (NOT CONTAINS(*, '"e-learning"'))
Run Code Online (Sandbox Code Playgroud)
我目前正在使用查询解析器类,它使用正则表达式将用户输入的查询解析为标记,然后从标记构造where子句.
但是,鉴于这可能是许多使用全文搜索的系统的常见要求,我很好奇其他开发人员如何处理这个问题,以及是否有更好的做事方式.
有没有人知道将通过MS Exchange Server 2007 Web服务连接的开源PHP类(最好是BSD或MIT许可证).肥皂?
我正在寻找一个更高级别的类,它具有通过发送消息的功能.网络服务.
php exchange-server exchange-server-2007 exchangewebservices
在Vim中,纠正所有行缩进的命令是什么?
很多时候我会将代码复制并粘贴到远程终端中并使整个过程搞砸了.我想一举解决这个问题.
sql-server ×3
c# ×2
sql ×2
asp.net-mvc ×1
file ×1
generics ×1
hash ×1
html-select ×1
indentation ×1
input ×1
interop ×1
java ×1
msmq ×1
perl ×1
php ×1
search ×1
user-input ×1
vi ×1
vim ×1