返回顶部
首页 > 资讯 > 数据库 > 试试SQLSERVER2014的内存优化表
  • 578
分享到

试试SQLSERVER2014的内存优化表

摘要

原文:试试sqlSERVER2014的内存优化表 试试SQLSERVER2014的内存优化表 SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度。 现在,存储引擎已整合进当前的数据库管理系统,而使


	试试SQLSERVER2014的内存优化表
[数据库教程]

原文:试试sqlSERVER2014的内存优化

试试SQLSERVER2014的内存优化表

SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度。

现在,存储引擎已整合进当前的数据库管理系统,而使用先进内存技术来支持大规模OLTP工作负载。

就算如此,要利用此新功能,数据库必须包含“内存优化”文件组和表

即所配置的文件组和表使用Hekaton技术。

幸运的是,SQL Server 2014使这一过程变得非常简单直接。

要说明其工作原理,我们来创建一个名为TestHekaton的数据库,然后添加一个内存优化文件组到此数据库

 

测试环境:Microsoft Azure 大陆版 虚拟机

4核 ,7G内存,windows2012R2

SQLSERVER2014企业版

bubuko.com,布布扣


实验

第一个实验:内存表的简单使用

 

步骤1:创建数据库和MEMORY_OPTIMIZED_DATA文件组

bubuko.com,布布扣
USE master;

Go

CREATE DATABASE TestHekaton;

GO

ALTER DATABASE TestHekaton

ADD FILEGROUP HekatonFG CONTaiNS MEMORY_OPTIMIZED_DATA;

GO
bubuko.com,布布扣

bubuko.com,布布扣

注意ALTER DATABASE语句中的ADD FILEGROUP 语句包含文件组的名称(HekatonFG)和关键字CONTAINS MEMORY_OPTIMIZED_DATA

它会指导SQL Server去创建支持内存OLTP引擎所必需的文件组类型。

注意:每个数据库只能有一个MEMORY_OPTIMIZED_DATA文件组!!

要确认此文件组已经创建,可以访问SSMS中数据库属性的Filegroups 界面,如下图所示。

bubuko.com,布布扣

bubuko.com,布布扣

 

步骤2:

添加一个数据文件到文件组,可以通过ALTER DATABASE语句来实现。

添加一个新数据文件到HekatonFG文件组:

bubuko.com,布布扣
ALTER DATABASE TestHekaton

ADD FILE
(
   NAME = HekatonFile,
   FILENAME =C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAHekatonFile
)

TO FILEGROUP [HekatonFG];
GO
bubuko.com,布布扣

注意:在ADD FILE 语句中,我们只为文件路径和文件名提供了一个友好的名称。

并且,在TO FILEGROUP 语句中,为新文件组指定名称。

然后可以去往数据库属性的 Files 界面来查看刚刚添加的文件,如图所示。

bubuko.com,布布扣

 bubuko.com,布布扣

 

步骤3:

在为数据库设置了必需的文件组和文件之后,就可以创建自己的内存优化表了。

当在定义表的时候,会指定其“持久性”

一个内存优化表可以是持久的非持久的

(1)对于一个持久表是将数据存储在内存中,而且也保存在内存优化文件组中。

(2)对于一个非持久表,数据是仅存储在内存中的,所以,如果系统崩溃或重启,数据就会丢失。

 

在SQL Server 2014中默认用的是持久表,接下来我们来深入了解一下。

当定义一个持久内存优化表的时候,你还必须定义一个基于非聚集哈希索引的主键。

在一个哈希索引中,数据是通过一个内存散列表进行访问的,而非固定大小页。

哈希索引是在内存优化表中唯一支持的索引类型。

除了在表定义中定义主键外,还必须将表配置为内存优化的,如下CREATE TABLE 语句所示:

bubuko.com,布布扣
USE TestHekaton;
GO

CREATE TABLE Reseller
    (
      [ResellerID] INT NOT NULL
                       PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1024),
      [ResellerName] NVARCHAR(50) NOT NULL ,
      [ResellerType] NVARCHAR(20) NOT NULL
    )
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);

INSERT  INTO Reseller
VALUES  ( 1, A Bike Store, Value Added Reseller );
bubuko.com,布布扣

 

ResellerID 字段定义包含了定义为非聚集哈希的主键。

注意,必须包含一个WITH 语句来指定BUCKET_COUNT 的设置,它表明了在哈希索引中应该创建的bucket数量。

(每个bucket是一个槽,可以用来存放一组键值对。)

微软建议bucket的数量应是一到两倍于你所期望的表所要包含的唯一索引键的数量。

 

此表定义以第二个WITH 语句结束。

这里你指定MEMORY_OPTIMIZED 选项为ON 以及DURABILITY 选项为SCHEMA_AND_DATA,此选项是针对持久表的。

接着在表中插入一条记录,这样就可以进行测试了。

数据已经插入到表中

 bubuko.com,布布扣

 

这就是创建一个内存优化表的全部步骤,其他的一切都会发生在幕后。

但是,要记住,SQL Server 2014对这些表有着很多限制。例如,它们不支持外键约束检查(感觉类似于Mysql的memory存储引擎),

它们也不支持IDENTITY 字段或DML触发器。最为重要的是,内存耗尽会导致写活动停止。

 

步骤4:

另一方面,内存优化表支持本地编译存储过程,只要那些存储过程只引用内存优化表。

在这种情况下,存储过程可以转化为本地代码,这样会执行更快且要比典型存储过程需要更少的内存。

除了只引用内存优化表,一个本地编译存储过程必须是模式绑定的并运行在一个特定执行内容内。

另外,每个本地编译存储过程必须完全由一个原子块组成。

 

下面的CREATE PROCEDURE 语句定义了一个本地编译存储过程,它从前例中所创建的Reseller表中检索数据

bubuko.com,布布扣
CREATE PROCEDURE GetResellerType ( @id INT )
    WITH NATIVE_COMPILATioN,
         SCHEMABINDING,
         EXECUTE AS OWNER
AS
    BEGIN
  ATOMIC WITH(TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = us_english)
        SELECT  ResellerName ,
                ResellerType
        FROM    dbo.Reseller
        WHERE   ResellerID = @id
    END;
GO
bubuko.com,布布扣

 

在定义了参数之后,包含一个WITH 语句来指定NATIVE_COMPILATION 选项。

注意:此语句还包含SCHEMABINDING 选项和EXECUTE AS 选项,以及指定了OWNER 作为执行环境。

而WITH 语句负责实现本地编译存储过程的三大需求。

要解决原子块需求,可以在BEGIN 关键字后指定ATOMIC ,之后是另一个包含有事务隔离级别和语言的WITH 语句。

对于访问内存优化表的事务,可以使用SNAPSHOT,REPEATABLEREAD 或SERIALIZABLE 作为隔离级

而且,对于此语言必须使用一个可用的语言或语言别名。

这是在定义存储过程时所需要包含的全部内容。一旦创建,就可以通过执行EXECUTE 语句来对其加以测试,如下例中所示:

EXEC GetResellerType 1;

 

此语句会返回经销商的姓名和类型,在本例中分别是ABike Store和Value Added Reseller。

bubuko.com,布布扣

 


第一个实验:内存表的数据查询速度比较

聚集索引表和内存优化表的比较

建表语句

bubuko.com,布布扣
USE TestHekaton;
GO

--内存优化表
CREATE TABLE testmemory1
    (
      [ID] FLOAT NOT NULL
                       PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1024),
      [Name] NVARCHAR(50) NOT NULL 
    )
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
bubuko.com,布布扣

 

bubuko.com,布布扣
USE TestHekaton;
GO

--聚集索引表
CREATE TABLE testmemory2
    (
      [ID] FLOAT NOT NULL PRIMARY KEY,
      [Name] NVARCHAR(50) NOT NULL 
    )
bubuko.com,布布扣

 

---------------------------------------------------------------

插入性能比较

内存优化表

SET STATISTICS IO ON 
SET STATISTICS TIME ON
INSERT into testmemory1([id],[name])  SELECT [id] ,[name] from sysobjects
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
bubuko.com,布布扣
Table sysschobjs. Scan count 1, logical reads 33, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 20 ms.
(90 row(s) affected)
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
bubuko.com,布布扣

bubuko.com,布布扣

 

聚集索引表

SET STATISTICS IO ON 
SET STATISTICS TIME ON
INSERT into testmemory2([id],[name])  SELECT [id] ,[name] from sysobjects
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
bubuko.com,布布扣
Table testmemory2. Scan count 0, logical reads 183, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table sysschobjs. Scan count 1, logical reads 33, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 10 ms.
(90 row(s) affected)
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
bubuko.com,布布扣

bubuko.com,布布扣

 

-------------------------------------------------------------------------------

查询性能比较

内存优化表

SET STATISTICS IO ON 
SET STATISTICS TIME ON
SELECT * FROM  testmemory1  ORDER BY [ID] DESC
SET STATISTICS IO ON
SET STATISTICS TIME ON
bubuko.com,布布扣
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 1 ms.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
(90 row(s) affected)
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
bubuko.com,布布扣

bubuko.com,布布扣

 

 

聚集索引表

SET STATISTICS IO ON 
SET STATISTICS TIME ON
SELECT * FROM  testmemory2  ORDER BY [ID] DESC
SET STATISTICS IO ON
SET STATISTICS TIME ON
bubuko.com,布布扣
(91 row(s) affected)
Table testmemory2. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
bubuko.com,布布扣

bubuko.com,布布扣

 

可以看到内存优化表读写数据(insert 、select)的时候都看不到IO读写

 


我们看一下事务日志

bubuko.com,布布扣
CHECKPOINT
GO

SELECT Context ,
Operation,
AllocUnitName
FROM sys.fn_dblog(NULL, NULL)
bubuko.com,布布扣

 

 

Context Operation AllocUnitName
LCX_NULL LOP_HK NULL
LCX_NULL LOP_HK_CHAINED NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_HK_CHAINED NULL
LCX_NULL LOP_HK_CHECKPOINT NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_CLUSTERED LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_COMMIT_XACT NULL
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_HK NULL
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_HEAP LOP_INSERT_ROWS sys.xtp_storage
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.xtp_storage.UQ__xtp_stor__3213E83EA8737D06
LCX_CLUSTERED LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_CLUSTERED LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_INDEX_LEAF LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_COMMIT_XACT NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_CLUSTERED LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_COMMIT_XACT NULL
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_HEAP LOP_INSERT_ROWS sys.xtp_storage
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.xtp_storage.UQ__xtp_stor__3213E83EA8737D06
LCX_NULL LOP_COMMIT_XACT NULL
LCX_NULL LOP_HK NULL
LCX_CLUSTERED LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysallocunits.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrowsets.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysallocunits.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrowsets.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysallocunits.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrowsets.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrscols.clst
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysallocunits.clust
LCX_CLUSTERED LOP_COUNT_DELTA sys.sysrowsets.clust
LCX_NULL LOP_BEGIN_CKPT NULL
LCX_FILE_HEADER LOP_MODIFY_STREAMFILE_HDR NULL
LCX_BOOT_PAGE_CKPT LOP_XACT_CKPT NULL
LCX_NULL LOP_END_CKPT NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_HK_CHAINED NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_HK NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_CLUSTERED LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_COMMIT_XACT NULL
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_HK_CHAINED NULL
LCX_NULL LOP_HK_CHAINED NULL
LCX_NULL LOP_HK_CHECKPOINT NULL
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_HEAP LOP_INSERT_ROWS sys.xtp_storage
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.xtp_storage.UQ__xtp_stor__3213E83EA8737D06
LCX_NULL LOP_COMMIT_XACT NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_NULL LOP_BEGIN_XACT NULL
LCX_CLUSTERED LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_COMMIT_XACT NULL
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_MARK_AS_GHOST LOP_DELETE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_NULL LOP_FS_DOWNLEVEL_OP NULL
LCX_HEAP LOP_INSERT_ROWS sys.xtp_storage
LCX_INDEX_LEAF LOP_INSERT_ROWS sys.xtp_storage.UQ__xtp_stor__3213E83EA8737D06
LCX_NULL LOP_COMMIT_XACT NULL
LCX_NULL LOP_HK NULL
LCX_CLUSTERED LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_CLUSTERED LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_INDEX_LEAF LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_INDEX_LEAF LOP_EXPUNGE_ROWS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSClusIdx
LCX_PFS LOP_SET_BITS sys.filestream_tombstone_2073058421.FSTSNCIdx
LCX_PFS LOP_MODIFY_HEADER Unknown Alloc Unit

 


总结

内存优化表也会写事务日志的,在读写操作的时候发现内存优化表没有I/O次数,应该是数据都已经在内存里了

 

更多详细资料可以参考:

SQL Server 2014 新特性——内存数据库

SQL Server 2014新特性:分区索引和内存优化表

MSDN:内存优化表

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

试试SQLSERVER2014的内存优化表,布布扣,bubuko.com

试试SQLSERVER2014的内存优化表

原文地址:Http://www.cnblogs.com/lonelyxmas/p/3693950.html

您可能感兴趣的文档:

--结束END--

本文标题: 试试SQLSERVER2014的内存优化表

本文链接: https://lsjlt.com/news/8092.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 试试SQLSERVER2014的内存优化表
    原文:试试SQLSERVER2014的内存优化表 试试SQLSERVER2014的内存优化表 SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度。 现在,存储引擎已整合进当前的数据库管理系统,而使...
    99+
    2019-01-31
    试试SQLSERVER2014的内存优化表 数据库入门 数据库基础教程 数据库 mysql
  • 试试SQLSERVER2014的内存优化表
    原文:试试SQLSERVER2014的内存优化表 试试SQLSERVER2014的内存优化表 SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度。 现在,存储引擎已整合进当前的数据库管理系统,而使...
    99+
    2015-04-09
    试试SQLSERVER2014的内存优化表 数据库入门 数据库基础教程 数据库 mysql
  • SpringBoot内置tomcat调优测试优化
    问题 怎么配置springBoot 内置tomcat,才能使得自己的服务效率更高呢? 基础配置 Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配...
    99+
    2024-04-02
  • Android性能测试-内存
      前言:   近阶段都在探索android性能测试方面的东西,其中一个很重要的指标是内存。对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致o...
    99+
    2022-06-06
    测试 Android
  • Android内存优化之内存缓存
      什么是缓存?   缓存技术原理是把用户访问的所有对象看作一个全集,经过算法标记哪些是用户经常访问的对象,把这些对象放到一个集合里,这个集合是全集一个子集,下一次...
    99+
    2022-06-06
    优化 缓存 Android
  • 想要优化Laravel应用程序的性能吗?试试这些存储技巧!
    Laravel是一个流行的PHP框架,广泛用于构建各种Web应用程序。但是,当我们的应用程序变得越来越大和复杂时,我们可能会遇到性能问题。为了提高Laravel应用程序的性能,我们可以使用一些存储技巧。在本文中,我们将讨论一些这样的技巧,并...
    99+
    2023-06-24
    存储 ide laravel
  • PHP开发缓存的性能测试与优化指南
    PHP开发缓存的性能测试与优化指南一、引言随着互联网的快速发展,Web应用程序的性能对于用户体验和客户满意度变得越来越重要。在PHP开发中,缓存技术被广泛应用于提高应用程序的性能和响应速度。然而,如何有效地测试和优化缓存的性能是一个关键问题...
    99+
    2023-11-07
    缓存 性能优化 PHP开发
  • java内存溢出面试题
    引起内存溢出的原因有很多种,常见的有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复的对象实体;使用的第三方软件中的BUG;启动...
    99+
    2021-12-21
    java面试题 java
  • 怎么测试内存的稳定性
    测试内存稳定性的方法:1.安装并打开鲁大师硬件检测工具;2.点击“性能测试”选项;3.勾选“内存性能”,点击“开始评测”按钮;4.等待评测完成;具体步骤如下:首先,在计算机中安装并打开鲁大师硬件检测工具;进入鲁大师主界面后,在界面中点击“性...
    99+
    2024-04-02
  • 使用SQL Server内存优化表 In-Memory OLTP
    如果你的系统有高并发的要求,可以尝试使用SQL Server内存优化表来提升你的系统性能。你甚至可以把它当作Redis来使用。 要使用内存优化表,首先要在现在数据库中添加一个支持内存优化的文件组。 Memory Optimized File...
    99+
    2020-09-30
    使用SQL Server内存优化表 In-Memory OLTP
  • android内存优化之图片优化
    对图片本身进行操作。尽量不要使用setImageBitmap、setImageResource、BitmapFactory.decodeResource来设置一张大图,因为这些...
    99+
    2022-06-06
    图片 优化 Android
  • 想要优化网站速度?不妨试试 ASP 缓存 重定向 关键字!
    在如今的互联网时代,网站速度对于用户体验来说至关重要。如果你的网站速度慢,那么很有可能会让用户感到不耐烦,甚至放弃继续浏览。因此,如何优化网站速度成为了每个网站管理员必须要考虑的问题。 在 ASP 中,我们可以利用缓存、重定向和关键字等技...
    99+
    2023-08-08
    缓存 重定向 关键字
  • 调试排错 - Java 内存分析之堆内存和MetaSpace内存
    本文以两个简单的例子(堆内存溢出和MetaSpace (元数据) 内存溢出)解释Java 内存溢出的分析过程。@pdai调试排错 - Java 内存分析之堆内存和MetaSpace内存常见的内存溢出问题(内存和MetaSpace内...
    99+
    2022-12-02
    java框架 java全栈 java学习路线 java全栈知识 java面试 知识体系 java技术体系 java编程
  • 如何优化redis的内存
    一、特殊编码:自从Redis 2.2之后,很多数据类型都可以通过特殊编码的方式来进行存储空间的优化。其中,Hash、List和由Integer组成的Sets都可以通过该方式来优化存储结构,以便占用更少的空间...
    99+
    2024-04-02
  • 阿里云服务器内网速度测试与优化
    本文将详细介绍如何对阿里云服务器的内网速度进行测试,以及如何通过优化网络设置来提升内网速度。 一、阿里云服务器内网速度测试使用ping命令测试内网速度 在命令行中输入“ping”后跟目标服务器IP地址,可以查看到到目标服务器的响应时间。一般...
    99+
    2024-01-25
    阿里 内网 速度
  • 想要提高Linux下GO语言应用程序的性能?试试优化日志缓存!
    在开发GO语言应用程序时,日志是不可或缺的一个重要组成部分。然而,在高并发、大数据量的情况下,日志输出可能会成为应用程序的性能瓶颈。为了解决这个问题,我们可以通过优化日志缓存来提高程序的性能。 本文将会介绍如何使用GO语言的log库来优化...
    99+
    2023-11-03
    linux 日志 缓存
  • C++ 内存泄漏调试方式
    C++和其他高级语言不同,需要自行管理内存,项目大\调用多,容易内存泄漏.内存申请释放使用malloc/free和new delete两种方式. 当内存报错弹出一个陌生的地址,我一脸...
    99+
    2024-04-02
  • 测试Windows10内存图文教程
    如何在Windows10上测试内存?近期有许多用户询问如何测试Windows10的内存。在这里,小编愿意与需要帮助的朋友分享关于如何测试Windows10内存的操作方法,希望能对他们有所帮助。许多Win10用户纠结于如何进行Windows1...
    99+
    2023-07-12
  • PHP 性能优化:内存优化技巧
    内存管理对 php 性能优化至关重要。优化内存使用可以通过以下技巧实现:使用高效的数据结构,如数组而非链表。避免不必要的内存拷贝,使用引用 (&) 或赋值 (=) 进行变量传递。...
    99+
    2024-05-10
    php 内存优化 键值对
  • PHP 缓存面试文件:如何优化你的网站性能?
    在开发网站的过程中,优化网站性能是非常重要的一项任务。其中,缓存技术是一个非常有效的优化方法。在本文中,我们将讨论如何使用 PHP 缓存技术来优化网站性能。 什么是缓存? 缓存是指将计算出的结果存储在内存或者磁盘上,以便后续的请求可以...
    99+
    2023-07-30
    缓存 面试 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作