SQLServer查询有缓存,清理不掉,请邹捷等大人帮忙看看。 我的表里有一些索引字段,请问(问题1)是否SQLServer在第一次查询时要建立索引而导致第一次查询慢呢?数据库索引是在创建索引时就已经创建,以后数据库会自动维护索引查询的时候,只会用到索引,不会创建索引 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在原来那个帖子里面偶好像回了一个,前面加一个CHECKPOINT可以不? DBCC FREEPROCCACHE; DBCC DROPCLEANBUFFERS DBCC FREESYSTEMCACHE ( 'ALL' ) 测试了下,好像大多数时候这个都不work... CHECKPOINT有什么作用,MSDN上的介绍没看太懂,实际测试中加与不加差别似乎不太大。 真的没有办法了吗?现在的问题是Oracle和SQL做比较。Oracle在查询时用了请缓存的语句后效果特别明显,SQLServer不明显,二者一比较就不好办了。 我在实际测试时有这样的现象:数据库中表建立好之后(表中有索引,聚集和非聚集的都有)向表中insert大量数据10万以上。第一次查询时速度比较慢。清除缓存后,再次查询,以后的查询比第一次要快。请问第一次查询为什么慢呢?会不会是刚刚insert的数据索引还没有起作用呢? --1.CHECKPOINT--2.DBCC DROPCLEANBUFFERS--3.DBCC FREEPROCCACHE--4.DBCC FREESYSTEMCACHE ( 'ALL' ) --5.要接着执行你的查询,不然SQLServer会时刻的自动往缓存里读入最有可能需要的数据页. --查看缓存里当前的内容SELECT * FROM sys.dm_os_buffer_descriptors where page_type IN ('DATA_Page','INDEX_Page') ORDER BY row_count DESC 我想楼主可以用多个session来进行查询。还有我们的大斑竹是邹建,写错名字可不好。 谢谢!请问怎么利用多个session进行查询呢? 按两个小时分组的问题 求这样的需求该如何写sql?急 我从不同的表中提取想要的数据为一视图,显示在页面上,我需要一个ID. 数据导出的时候 怎么以日期做文件名啊 求帮忙建立两个触发器。 关于“校内网”,上的好友关系如何建立数据表? 请高手!数据统计格式 请问:查"张含晕"则提示"是否要查"张含韵"?(因为"晕"和"韵"是协音)这类的查询怎么做,难不难?(sql server2000) 在sql2000中,怎么创建用于是windows登陆的帐户? ib的多语言问题 我们数据库这行的话,大概什么岁数退下来? 求助:如何实现下面的触发器?
前面加一个CHECKPOINT可以不?
DBCC DROPCLEANBUFFERS
DBCC FREESYSTEMCACHE ( 'ALL' )
测试了下,
好像大多数时候这个都不work...
现在的问题是Oracle和SQL做比较。Oracle在查询时用了请缓存的语句后效果特别明显,SQLServer不明显,二者一比较就不好办了。
数据库中表建立好之后(表中有索引,聚集和非聚集的都有)
向表中insert大量数据10万以上。
第一次查询时速度比较慢。
清除缓存后,再次查询,以后的查询比第一次要快。
请问第一次查询为什么慢呢?会不会是刚刚insert的数据索引还没有起作用呢?
--1.
CHECKPOINT
--2.
DBCC DROPCLEANBUFFERS
--3.
DBCC FREEPROCCACHE
--4.
DBCC FREESYSTEMCACHE ( 'ALL' )
--5.要接着执行你的查询,不然SQLServer会时刻的自动往缓存里读入最有可能需要的数据页.
--查看缓存里当前的内容SELECT * FROM sys.dm_os_buffer_descriptors where page_type IN ('DATA_Page','INDEX_Page') ORDER BY row_count DESC
还有我们的大斑竹是邹建,写错名字可不好。