标签: in-memory-tables

内存数据库表中的Out of Process,支持高速缓存的查询

我有一个不断访问的SQL表,但很少变化.

表由UserID分区,每个用户在表中有许多记录.

我想保存数据库资源并将此表移近某种内存缓存中的应用程序.

在进程中,缓存过于占用内存,因此需要在应用程序外部进行缓存.

像Redis这样的Key Value商店由于与Redis之间序列化和反序列化表的开销而被证明是低效的.

我正在寻找可以将这个表(或数据分区)存储在内存中的东西,但是让我只查询我需要的信息,而不需要为每次读取序列化和反序列化大块数据.

是否有任何东西可以在内存数据库表中提供Out of Process,它支持高速缓存的查询?

搜索显示Apache Ignite可能是一个可能的选择,但我正在寻找更明智的建议.

sql caching in-memory-database redis in-memory-tables

16
推荐指数
1
解决办法
390
查看次数

100%内存中的HSQL数据库

我将Java应用程序设置为服务,每隔几个小时对大约3GB的数据进行数据挖掘.我希望这在内存中100%发生.理想情况下,我希望应用程序与所有内容隔离开来; 我希望它构建数据库,进行我需要的挖掘,并在数据库完成后拆除数据库.

但是对于HSQLDB,即使我使用"create memory table ...."命令,也会写入所有语句的日志,并在下次运行应用程序时重新创建表.

我正在做大量的插入,大约150k +,所以这个文件的大小会很快增长.我也不关心下次运行时重建数据库,因此日志对我来说毫无用处.

我可以在完成后删除文件,但如果可能的话,我想避免在磁盘上写太多内容.

有没有办法关闭此功能?

提前致谢!

logging hsqldb in-memory-tables

6
推荐指数
1
解决办法
9807
查看次数

使用Web API TransactionScope和SQL Server内存表问题

每当我通过Web API访问具有内存表的存储过程TransactionScope时,都会出现此错误:

当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。在批处理结束时检测到不可提交的事务。交易回滚

我试图直接在SQL Server Management Studio中执行相同的存储过程,并且工作正常。

另外,当我TransactionScope从Web API中删除时,它也可以正常工作。但是我想TransactionScope在Web API内使用

在存储过程中,我有以下内容:

SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
BEGIN TRY
 SELECT ITEMID FROM SAMPLE_IN_MEMORY_TABLE
           ----
END TRY
BEGIN CATCH
--
END CATCH
Run Code Online (Sandbox Code Playgroud)

在Web API内部,按照以下方式使用存储过程

QueriesTableAdapter qa = new QueriesTableAdapter();

using (TransactionScope scope = new TransactionScope())
{
      qa.SpSampleInMemoeryAccess(g_OutParameter64);

      if (g_OutParameter64 > 0)
      {
          scope.Complete();
          Status = true;             
      }
      else
      {
          Status = false;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

stored-functions asp.net-web-api2 in-memory-tables

5
推荐指数
1
解决办法
104
查看次数