189 8069 5689

sqlserver缓存表,oracle缓存表

JDBC访问SQLServer有没有缓存?存在那里?用的服务器是tomcat,数据库为本地和异地的时候,是否都有缓存?

什么是缓存,什么是内存?如果说是List的话那是默认将数据添加到列表对象的内存堆栈中。jdbc就没有缓存,你可以每次执行一条sql然后在ide调试状态下去看看你的数据库中执行的sql就明白了,如果要将查询对象缓存需要自己实现,现在一些成熟的项目ehcache,oscache等等,还有就是自己实现了。

目前创新互联已为数千家的企业提供了网站建设、域名、雅安服务器托管网站运营、企业网站设计、田阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

如何将SQLServer表驻留内存和检测

您好,很高兴为您解答。

1, DBCC PINTABLE

Marks a table to be pinned, which means Microsoft SQL Server does not flush the pages for the table from memory.

SyntaxDBCC PINTABLE ( database_id , table_id ) 

To determine the database ID, use the DB_ID function.

To determine the table ID, use the OBJECT_ID function.

注释:

DBCC PINTABLE 不会导致将表读入到内存中。当表中的页由普通的 Transact-SQL 语句读入到高速缓存中时,这些页将标记为内存驻留页。当 SQL Server 需要空间以读入新页时,不会清空内存驻留页。SQL Server 仍然

记录对页的更新,并且如有必要,将更新的页写回到磁盘。然而,在使用 DBCC UNPINTABLE 语句使该表不驻留之前

,SQL Server 在高速缓存中一直保存可用页的复本。

示例:

Declare @db_id int, @tbl_id int

Use DATABASE_NAME

Set @db_id = DB_ID('DATABASE_NAME')

Set @tbl_id = Object_ID('Department')

DBCC pintable (@db_id, @tbl_id)

可将表Department设置为驻留内存。

Declare @db_id int, @tbl_id int

Use DATABASE_NAME

Set @db_id = DB_ID('DATABASE_NAME')

Set @tbl_id = Object_ID('Department')

DBCC UNpintable (@db_id, @tbl_id)

可将表Department取消设置为驻留内存。

可以使用如下的SQL指令来检测执行情况:

Select ObjectProperty(Object_ID('Department'),'TableIsPinned')

如果返回结果为1:则表示该表已经设置为驻留内存;0:则表示没有设置为驻留内存。

2, SP_TableOption

Sets option values for user-defined tables. sp_tableoption may be used to turn on the text in row feature on tables with text, ntext, or image columns.

Syntax

sp_tableoption [ @TableNamePattern = ] 'table' 

, [ @OptionName = ] 'option_name' 

, [ @OptionValue = ] 'value'

其中,'option_name' 有如下用法:

pintable  -- When disabled (the default), it marks the table as no longer RAM-resident. When enabled, marks the table as RAM-resident. (可将指定的表驻留内存)

另外,table lock on bulk load, insert row lock, text in row等等可选值,因不涉及将表驻留内存,具体用法可以查询SQL Server Books Online.

Value有如下用法:

the option_name is enabled (true, on, or 1) or disabled (false, off, or 0)

示例:

EXEC sp_tableoption 'Department','pintable', 'true'

将数据表Department驻留内存

EXEC sp_tableoption 'Department','pintable', 'false'

取消数据表Department驻留内存

可以使用如下的SQL指令来检测执行情况:

Select ObjectProperty(Object_ID('Department'),'TableIsPinned')

如果返回结果为1:则表示该表已经设置为驻留内存;0:则表示没有设置为驻留内存。

3. Conclusions

将数据表设置为驻留内存时,并没有实际将表读入内存中,直到该表从被检索。因此,可以使用如下SQL指令进一步将数据表Department驻留内存:

Select * From Department

另外,可以使用如下SQL指令方便显示/检测数据库Database中所有设置为驻留内存的表:

SELECT * FROM INFORMATION_SCHEMA.Tables 

WHERE TABLE_TYPE = 'BASE TABLE' 

AND OBJECTPROPERTY(object_id(TABLE_NAME), 'TableIsPinned')  0

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

如何开启SQLSERVER数据库缓存

他的高速缓存是用来存储sql信息,以及最近使用数据,减少磁盘IO的作用,提高存储读写速度的; 一般web网站中,需要用到数据检索的查询sql缓存 新手的话没关系,一般多看看他们的产品资料即可;sql有很多在线帮助;


本文题目:sqlserver缓存表,oracle缓存表
分享网址:http://jkwzsj.com/article/dschpsi.html

其他资讯