在内存中分配的SQL小表

时间:2011-06-02 23:47:03

标签: c++ sql-server sql-server-2008 memory vector

有没有办法让SQL Server在内存中存储像这样10 attributes and 10 rows的表?

a1   a2   a3  a4  a5  a6  a7  a8  a9 a10
----------------------------------------
138 498  365 345 500 473 498 125 134 800
448 498  362 348 500 463 498 625 165 700
468 498  625 329 500 435 498 625 345 600
437 701  365 326 500 453 498 625 645 500
438 498  326 329 500 438 498 625 745 400
439 499  626 329 500 438 498 525 685 300
440 500  327 328 500 423 498 627 655 200
444 214  331 334 500 428 498 125 615 100
448 498  362 348 500 463 498 225 165 700
468 498  625 329 500 435 498 425 345 600

有没有办法将此表存储在连续的内存中?

我正在考虑制作一些矢量并使表格成一行(而不是10行的10个属性会产生大小为100的矢量。 有没有办法做到这一点?

你可能会问我为什么要这样做,这是因为我想在内存中进行一些微积分 以避免写入或使用磁盘,然后访问内存或 vector < / strong>在C ++或.NET(可能是C#?)

2 个答案:

答案 0 :(得分:5)

不要试图指示SQL Server如何处理这样的事情的内存。它是一种声明性语言 - 你告诉它你想要什么,它会弄清楚如何去做。

将其保留在内存中只是恢复的问题。话虽这么说,一旦你创建了表,它将被写入磁盘后保存在内存中。 SQL Server缓存数据页,这样的东西就是单个页面,所以很多磁盘访问都不应该成为问题。

答案 1 :(得分:1)

最近,Microsoft为SQL Server 2012提供了内存数据库。对于需要高性能数据库的项目来说,这是一个非常好的消息。