zoukankan      html  css  js  c++  java
  • 内存表

    内存表将数据保留在内存当中,在高并发的数据更新中,性能高于常用的磁盘表。

    创建

    1.在数据库中添加 momery optimized data文件组。

    2.向该组添加filestream文件。

    3.

    --创建内存表
    CREATE TABLE [dbo].[person]
    (
    ID int not null,
    name varchar(50) not null,
    mark varchar(50) 
    
    --内存表创建时必须声明主键,并且只能创建非聚集索引
     CONSTRAINT [PK_person]  PRIMARY KEY NONCLUSTERED 
    (
        id 
    )
    --with的参数表明该内存表数据会持久保存,数据不会丢失。
    )WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA )
    GO

    4.内存表使用的一些限制。

    1).使用内存表不能跨数据库,跨数据库的插数据,串表都不行,只能在同一数据库中串表,插入等。

    A user transaction that accesses memory optimized tables or natively compiled modules cannot access more than one user database or databases model and msdb, and it cannot write to master.

    2).对内存表不能使用一些指令如:truncate ,merge等。

    3)只有内存表可以建hash索引。(hash索引在查询条件字段很长或字段多个时使用)

    经hash计算值相同的会放到同一个bucket中,数据量大就把bucket_count调到最大。

    ALTER TABLE [dbo].[person] ADD INDEX [ix_psonId] NONCLUSTERED HASH 
    (
        [ID]
    )WITH ( BUCKET_COUNT = 1048576)
    GO
  • 相关阅读:
    linux文件系统初探--Day2(3)
    linux文件系统初探--Day2(2)
    linux文件系统初探--Day2(1)
    linux文件系统初探--Day1
    LKD-虚拟文件系统
    linux-nova 安装
    per-file DAX 工作日志(2)
    linux 内核设计与实现——进程管理
    关于用户与服务端密码的校验问题 !mysql php
    [Err] 1055
  • 原文地址:https://www.cnblogs.com/JinweiChang/p/13494797.html
Copyright © 2011-2022 走看看