数据库一个表比较大,所以想对该表进行分区。我的计划是对数据库分多个文件组和文件,但都存在一块硬盘的一个分区里(这个服务器只有一块硬盘,一个是C区,一个是D区)
查阅资料上说“若数据库服务器存在多个CPU,则为每个分区分配一个线程,并且分区对应的文件组分别存储在不同物理硬盘中,则每个CPU并行执行查询操作,从而提高效率”。
我想问下,若每个分区存储都是存在一个文件组中,或者多个文件组还是在 一个物理磁盘里,那是不是多个线程还是要串行查询的?
感觉资料上都说得比较笼统,没有事实的图文和理论来证明。
请大侠们帮忙解答下,谢谢!
查阅资料上说“若数据库服务器存在多个CPU,则为每个分区分配一个线程,并且分区对应的文件组分别存储在不同物理硬盘中,则每个CPU并行执行查询操作,从而提高效率”。
我想问下,若每个分区存储都是存在一个文件组中,或者多个文件组还是在 一个物理磁盘里,那是不是多个线程还是要串行查询的?
感觉资料上都说得比较笼统,没有事实的图文和理论来证明。
请大侠们帮忙解答下,谢谢!
解决方案 »
- 如何做一个触发,在A数据插入数据时能触发到B数据库?
- 请问 有卖SQL SERVER 2005 联机手册的吗
- 怎么启动sql server management studio啊
- 〓百分〓求一SQL查询,有点难度~请大虾赐教>>>>>在线等>>>>>>>>>>>>>>>>>>>
- mssql多表查询时产生重复记录怎么办?
- MS-SQL 2000 安装配置问题
- 关于标识种子的问题:请高手进来看看。
- 关于DB中根据条件进行查询的问题(组合查询)
- sql中,如何把一个字符串插入到一个binary型字段中去?
- oracle的job问题
- 求助SQL的CLR编程,无法引用System.Web.dll
- 多表联合查询排序问题
数据库的效率的,另外最好把数据库文件.mdf和数据库日志文件.ldf分别放在不同的分区上这样也能提高数据的效率的。
但数据库文件坚决不好放在系统的磁盘上,另外如果有temp数据文件最好也要单独存放的。
单就你的分区函数的条件而言,如果你不分区条件字段设定的不合适,而在编写SQL的时候不注意分区条件而随便编写的话,效率是要打折扣的。而且有可能比你没有建立分区表和索引的时候更慢
2、還要看查詢的語句,如果是:select * from 分區表,那分區比不分區可能還要慢。因為要讀出全部數據,分區表還要合併數據。(此處是指分區表放到一塊硬盤中,如果是放到多塊硬盤中,會快。)
3、如果有三個分區,分別放到三塊硬盤上,那讀數據時,按分區方法,有可能系統會有三個線程,在三個分區(三塊硬盤)同時讀,理論上說,速度會快三倍。
4、分區也可以減少索引層數。因為同一分區記錄數變少。
5、據說,好像如果硬盤做成RAID,會比分區表更好一些。