对于什么样的查询,内存中的OLTP在Sql Server中更快?

时间:2014-08-20 10:34:25

标签: sql-server sql-server-2012 sql-server-2014

我一直在研究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秒

0 个答案:

没有答案