我一直在研究SQL-Server 2014附带的内存中OLTP。我正在阅读许多博客,白皮书和网络上的可用演示文稿。
到目前为止,我发现只有一种情况是内存中OLTP比基于磁盘的表快。内存表中的插入操作几乎比基于磁盘的表快100倍。
我还没有发现任何其他内存oltp更快的问题。我在两个表上都尝试过选择,更新,加入和Where查询但是找不到内存中OLTP更好的场景。
如果您可以向我推荐一些查询或方案,那就太棒了。
以下是两个选择查询,查询中使用的所有表都有1.4百万行。
1)内存中(两个表都是基于磁盘的)
SELECT SD.shoppingcartid
,SD.shoppingcartname
,sr.Createdate
,sr.TotalPrice
,Rank() OVER (
ORDER BY TOTALPRICE DESC
) AS PriceRank
FROM shoppingcart SR
JOIN shoppingcartdetail SD ON (SD.shoppingcartid = SR.shoppingcartId)
WHERE (
(
TOTALPRICE > 50000
AND CREATEDATE >= GETDATE()
)
OR (
TOTALPRICE / 3 < 50000
AND CREATEDATE <= GETDATE()
)
)
ORDER BY TotalPrice DESC
时间:8秒返回70万行
2)内存中(两个表都是内存表)
SELECT SD.shoppingcartid
,SD.shoppingcartname
,sr.CreatedDate
,sr.TotalPrice
,Rank() OVER (
ORDER BY TOTALPRICE DESC
) AS PriceRank
FROM shoppingcart_reg SR
JOIN shoppingcartdetail_regular SD ON (SD.shoppingcartid = SR.shoppingcartId)
WHERE (
(
TOTALPRICE > 50000
AND CREATEdDATE >= GETDATE()
)
OR (
TOTALPRICE / 3 < 50000
AND CREATEdDATE <= GETDATE()
)
)
ORDER BY TotalPrice DESC
拍摄时间:返回0.7百万行<11秒