假设我有一个 40MM 9 位邮政编码的 Oracle 数据库表,其中包括每个 4 位邮政编码。我有一个包含 800 个 5 位邮政编码的列表,我需要找到所有关联的 9 位邮政编码。总共有 40K 5 位邮政编码。假设我们已使用 B*Tree(常规)索引对 5 位邮政编码字段进行索引。考虑到数据库性能和可伸缩性,最好的方法是:
在单个语句中查询所有记录?像这样运行一次:
SELECT * FROM ZIPCODE WHERE ZIP5 IN (:1, :2,... :800)
为每个 5 位邮政编码查询一次?像这样运行 800 次:
SELECT * FROM ZIPCODE WHERE ZIP5 = :1
介于两者之间的一些批量大小?
你怎么看,为什么?如果您处于思考状态,一些 [可选] 后续想法:
我一直在开发一个小型Java实用程序,它使用两个框架:Encog和Jetty为网站提供神经网络功能.
代码已经"完成",它完成了它需要做的所有事情,但我在内存使用方面遇到了一些问题.在我的开发机器上运行时,当应用程序处理(训练神经网络)时,内存使用量似乎在大约4MB到13MB之间波动,并且最多使用大约18MB.这是非常好的用法,我认为这是因为我经常调用System.GC().我这样做是因为处理时间对我来说无关紧要,但内存使用情况确实如此.
所以它在我的机器上工作正常,但是一旦我把它放在我们的服务器上(共享内存限制的unix主机)它就开始使用大约19MB并且在做事时增加到数百MB的内存使用量.这些与我在测试中所做的一样.我认为,减少内存使用量的唯一方法是退出应用程序并重新启动它.
我能说的唯一区别是它正在运行的Java虚拟机.我不知道这个,我试图找到它以这种方式行事的原因,但是很多文档都假设你对Java和虚拟机有很好的了解.有人可以帮助我解释为什么会发生这种情况,也许有些事情要试图阻止它.
我已经看过使用GCJ来编译应用程序,但我不知道这是否应该花费大量时间以及它是否真的有用.
谢谢您的帮助!
我试图使用最接近的方式获取表单元素值.这里有一些示例代码.
<table>
<tr>
<td>Hour <input type="input" value="12" name="data[hour]" class="hour" /></td>
<td>Minute <input type="input" value="12" name="data[minute]" class="minute" /></td>
<td><a href="#" class="add-data">Add Row</a></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
请参阅我无法序列化表单,因为它是大表单的一部分,所以我需要获取最接近添加行链接的每个输入,因为你可以添加多行.
我试过了
var hour = $(this).closest('.hour').val();
var hour = $(this).closest('input', '.hour').val();
var hour = $(this).closest('input[name="data[hour]]").val();
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以获得表单值?
提前致谢
好的,我正在寻找一些非常简单的东西:创建一个不会停止我的代码的MessageBox.
我猜我必须创建一个不同的线程或什么?请告知最佳方法.
谢谢!
目前,Scala仅在JVM上运行,并且CLR的实现过时.
但目前有一些声音,微软有兴趣为.NET提供最新的Scala端口.
考虑到Oracle方面缺乏任何计划或监督如何处理Java/JVM /生态系统,Scala开发人员如何做好准备,最终可能没有合适的平台来运行Scala?
是否有计划在未来对Scala VM进行一些"独立"实现,将Scala的功能映射到某些字节码/ VM,而不是必须在当前VM实现中使用所有这些遗留错误(没有泛型,协变数组,奇怪的注释,没有尾调用等)?
通过计算机程序的结构和解释练习,我一直在慢慢地工作.第1.1.5节讨论了应用程序与正常顺序评估,之后在文本中出现了几次主题.由于解释器使用应用程序顺序评估,因此很容易display在代码中插入调试语句以确切了解其工作原理.能够为正常的订单评估做同样的事情将有助于我的理解.
有没有人知道使用正常顺序评估而不是应用顺序实现的Scheme(或Lisp)解释器?
这是一个简短的例子,修改自SICP中给出的一个例子.我将定义自己的add过程来打印出参数,并使用square本书中的过程.
(define (add x y)
(display x)
(display y)
(newline)
(+ x y))
(define (square x) (* x x))
Run Code Online (Sandbox Code Playgroud)
现在,如果我(square (add 1 2))使用applicative-order评估运行短程序,结果(add 1 2)将只计算一次然后传递给square过程.操作数12应在最终结果之前打印一次.我们可以在解释器中运行它来验证这是发生了什么.
> (square (add 1 2))
12
9
Run Code Online (Sandbox Code Playgroud)
但是,使用正常顺序评估时,(add 1 2)应将单个操作数复制到square过程中,该过程将评估为(* (add 1 2) (add 1 2)).操作数12应在最终结果之前打印两次.
我希望能够在一个执行正常顺序评估的解释器中运行它,以验证它确实是如何工作的.
我想从SQL Server中的查询中返回10个最常用的单词,因此针对一组行运行,例如:
快速棕色狐狸
慢黄狐狸
慢绿狐狸
将返回
狐狸
慢
快
棕
黄色
绿色
我对Windows上的源代码二进制文件有疑问.
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
相同的源代码,我在Windows上编译了两次(VS 2008 Cmmand Prompt:"CL"),但我得到了不同的二进制文件.
cl new.cpp
Run Code Online (Sandbox Code Playgroud)
你们能告诉我为什么,以及如何避免这种情况?
我想知道是否可以通过子查询返回的逗号分隔的顺序进行排序?
我有以下内容:
SELECT navigation.id, documents.template_id
FROM navigation
INNER JOIN documents
ON navigation.document_id = documents.id
AND FIND_IN_SET(navigation.id,(SELECT numeric_lineage
FROM navigation WHERE id = #id#))
ORDER BY ???
Run Code Online (Sandbox Code Playgroud)
现在我不确定如何按照与numeric_lineage中逗号分隔的设置相同的顺序排序结果.可能吗?如果可能的话,我宁愿不要做另一个子查询.
谢谢
java ×2
jquery ×2
jvm ×2
sql ×2
.net ×1
binary ×1
c# ×1
closest ×1
compilation ×1
input ×1
lisp ×1
llvm ×1
memory ×1
messagebox ×1
mysql ×1
oracle ×1
performance ×1
scala ×1
scalability ×1
scheme ×1
sicp ×1
sql-server ×1
t-sql ×1
thumbnails ×1
visual-c++ ×1
windows ×1