SQL SERVER相当于一个HashMap?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SERVER相当于一个HashMap?相关的知识,希望对你有一定的参考价值。

在Java应用程序中,如果必须多次查询一个表(小表),可以简单地创建一个HashMap并将表的内容存储在其中。完成此操作后,可以对HashMap进行后续调用,而不是对表进行调用,从而大大提高程序的性能。

我在SQL Server中有类似的情况,我必须在存储过程中循环说5,00,00次,并且每次都有许多查询的小表。有没有办法通过在SQL Server中使用等效概念来大幅减少执行过程所需的时间?

答案

数据库具有类似的功能,但它隐藏在页面缓存机制中。如果您反复使用表,那么它将被加载到内存中,并且内存操作比磁盘操作快得多。

我应该注意,您可以使用内存优化表将表显式存储在内存中(请参阅here)。如果您的应用程序需要,那些数据修改可以保持数据完整性。

此外,如果要随机访问表中的行,则应定义索引。大多数数据库(包括SQL Server)中的索引都使用二叉树。二叉树和散列映射之间的性能差异 - 特别是在小型表上 - 并不重要。

我应该注意,如果您的目标是尽可能编写最优化的代码,那么SQL可能不是正确的环境。 SQL引擎比流程数据做得更多,特别是在数据管理和维护数据完整性方面。这导致了开销。对于他们所做的一切,它们通常非常有效,但对于特定的算法,在其他地方编写逻辑可能会更快。 (当然,在数据库中,您可以免费获得并行性。)

以上是关于SQL SERVER相当于一个HashMap?的主要内容,如果未能解决你的问题,请参考以下文章

[SQL SERVER][HA]数据库镜像#简介

JAVA:并发

在 SQL Server 表中存储一些特殊字符

%ROWTYPE相当于在SQL Server

SQL Server 相当于 MySQL 的 EXPLAIN

mybatis中的#{}和${}