日期:2014-05-18  浏览次数:20808 次

sql2000用文件组放在不同的物理盘上怎么性能没有提高?
sql2000用文件组放在不同的物理盘上怎么性能没有提高?
操作系统为2003企业版 sql为企业版
文件组的两个文件位于不同的两个物理硬盘上
不用文件组和用文件组 插入100万条记录用的时间是一样的
不用文件组和用文件组 对100万条记录查询用的时间也是一样的
性能怎么没有提高呀?

------解决方案--------------------
關注
------解决方案--------------------
除非文件组分别放置在两个或者多个物理磁盘上之后,实现了并行的磁盘I/O,否则,不会提高I/O效率。
------解决方案--------------------
學習~~~
------解决方案--------------------
对这个我也感觉很模糊,学习
------解决方案--------------------
查询会提高性能,插入不会。
------解决方案--------------------
sql2000用文件组放在不同的物理盘上怎么性能没有提高

这个只是说会提高,并不是很明显,也分很多种情况的

建议 tmpdb 数据库也分开放,这样才能看到点效果
------解决方案--------------------
就我想当然的看法,如果是单个表,应该不会有提高,如果是同时查询多个表,且表位于不同的物理盘上,速度应该会有提高,如果是单个表且跨越物理磁盘,那只有更慢。

文件组的道理应该与两数据库的道理一样,如创建两数据库,分别位于两物理盘上,分别在两个连接上对两数据库插入数据,速度肯定会比两数据库位于一个物理磁盘上快。楼主的情况,单个表,好比在一个连接上对两个表插入数据,插完第一个才能到第二个,速度不可能变快。



------解决方案--------------------
Raid 可能好点
我认为并行程度越高才能体现服务器整体的性能。如果单个任务,他只是往一块硬盘写数据达不到并行I/O



------解决方案--------------------
学习
------解决方案--------------------
多用户并发执行的情况下,怎么样?
------解决方案--------------------
要看各个部分的负载压力如何
把两个都有压力的部分分开会提高效率,如果只是把一个不怎么有压力的部分扔出去了,那就没有什么变化了
问题的关键还是要让各个物理磁盘都动起来 raid 也是这个原理吧~
------解决方案--------------------
嗯,问题的关键是多硬盘最好是Raid,否则对于访问单一表的单一任务并没有并行分布到多个硬盘,而一块硬盘只有一个磁头也不能并行处理。但对于多任务的系统(现在的系统一般都是吧),多个磁盘还是有好处的。

另外,使用多个磁盘最好是将不同的大型表或者频繁访问的表指定其文件组,从而分布到不同硬盘。
------解决方案--------------------
数据插入时,首先对日志进行操作,这个操作是实时的,然后才是对数据的操作,这个操作是异步的,如果表上没有加索引,意味着数据写入到内存的脏数据区,整个操作就完成了,感觉把数据放到不同的文件组,然后把文件组放入不同的磁盘对插入操作的影响不大。你可以试试把数据文件和日志文件分别放到两个不同的辞盘,然后再来测试。
------解决方案--------------------

@lhb2000(lhb)

压力分开是什么意思?我这上面就一个文件组(两个文件在不同数据库) 里面也就只有一张表 -------------------------------------------------

如果是这样,那确实没有什么提高性能的空间了,我个人认为。
------解决方案--------------------
同一个物理盘性能提高不会太大,要做raid肯定要用多个物理盘,我个人认为最少是raid3
------解决方案--------------------
似乎觉得文件组不如raid性能好,文件组主要考虑在备份选择和安全上
------解决方案--------------------
raid应该是数据安全方面,特别是raid0,只是镜像,对效率不会有提高。
------解决方案--------------------
速度最快的应该是RAID 1 吧
------解决方案--------------------
ide???
接口速度不够快的8
------解决方案--------------------
有个好办法就是让sql系统满负载运行然后看效率...过上一段时间以后就会感觉比较明显了