[quote=引用 33 楼 jack11430 的回复:] 服务器配置: CPU:2个,每个12核,未启用超线程。 MEMORY:96GB,76800MB给SQLSERVER。 DISK:阵列1(RAID5,4块15000转600GB硬盘),阵列2(RAID5,3块15000转600GB硬盘),固态硬盘(200GB)。 系统:Windows SERVER2008 R2 企业版(64) 数据库:SQLSERVER2008(64) tempdb放置在固态硬盘上, 一个数据库单独的放置在阵列2。其他的库和系统放置在阵列1。 我在资源管理器上面发现单独的那个数据库的主文件90GB,读写频繁,导致IO队列超过100,我就想是不是单个文件太大, 导致这个文件变成热点文件,准备把某些表转移到其他的文件中,放置于阵列1。 文件的大小会影响速度,这个是我从tempdb上了解的,在另一台服务器上面,tempdb只有一个文件,大小 150GB,结果导致内存中,tempdb的缓存占了100GB,查询有些慢,后来我重新设置了tempdb的文件个数和大小,在内存中就只占用20GB了,这个时候空闲的80GB内存就直接把所有数据库需要用到的数据缓存了,缓存命中率达到100%。
服务器配置: CPU:2个,每个12核,未启用超线程。 MEMORY:96GB,76800MB给SQLSERVER。 DISK:阵列1(RAID5,4块15000转600GB硬盘),阵列2(RAID5,3块15000转600GB硬盘),固态硬盘(200GB)。 系统:Windows SERVER2008 R2 企业版(64) 数据库:SQLSERVER2008(64) tempdb放置在固态硬盘上, 一个数据库单独的放置在阵列2。其他的库和系统放置在阵列1。 我在资源管理器上面发现单独的那个数据库的主文件90GB,读写频繁,导致IO队列超过100,我就想是不是单个文件太大, 导致这个文件变成热点文件,准备把某些表转移到其他的文件中,放置于阵列1。 文件的大小会影响速度,这个是我从tempdb上了解的,在另一台服务器上面,tempdb只有一个文件,大小 150GB,结果导致内存中,tempdb的缓存占了100GB,查询有些慢,后来我重新设置了tempdb的文件个数和大小,在内存中就只占用20GB了,这个时候空闲的80GB内存就直接把所有数据库需要用到的数据缓存了,缓存命中率达到100%。
[quote=引用 12 楼 wmxcn2000 的回复:] 对性能没有影响: 1. 对CPU 和内存来讲,只关心数据来没来,不关心是哪里来的,我就是一个广计算、加工和缓存的功能; 2. 对RAID 来讲,你拆分 10 个文件,也有这 5 块盘支撑,你单一文件,也是这 5 块盘支撑; 3. 具体的数据存储,单一的文件,某一张表(或某个索引)所占的空间连续性要比多个文件所占空间的连续性的可能性要高; 有影响的方面: 1. 单位一文件在复制时,可能不知道已经拷了多少 M 了,但是多个文件,就可以看到 10 个文件,我已经拷了 4 个了,能知道一个大概的进度; 2. 如查想搭一个临时的测试环境,把数据备出来的,可能测试机的单一磁盘空间不够用了,加了磁盘还得做 RAID ,前期准备了 2 天,实际使用了 15 分钟。 个人意见,欢迎讨论。
对性能没有影响: 1. 对CPU 和内存来讲,只关心数据来没来,不关心是哪里来的,我就是一个广计算、加工和缓存的功能; 2. 对RAID 来讲,你拆分 10 个文件,也有这 5 块盘支撑,你单一文件,也是这 5 块盘支撑; 3. 具体的数据存储,单一的文件,某一张表(或某个索引)所占的空间连续性要比多个文件所占空间的连续性的可能性要高; 有影响的方面: 1. 单位一文件在复制时,可能不知道已经拷了多少 M 了,但是多个文件,就可以看到 10 个文件,我已经拷了 4 个了,能知道一个大概的进度; 2. 如查想搭一个临时的测试环境,把数据备出来的,可能测试机的单一磁盘空间不够用了,加了磁盘还得做 RAID ,前期准备了 2 天,实际使用了 15 分钟。 个人意见,欢迎讨论。
推荐一下让更多人关注。Ps:菠萝兄,上市之后反而有时间回帖了?
22,210
社区成员
121,729
社区内容
加载中
试试用AI创作助手写篇文章吧