sql server跨库查询的性能问题

oqqXun123456 2013-05-09 10:56:37
在同一个实例中, 两个关联的表是放在同一个数据库查询性能和分开放两个数据库查询的性能是一样的吗?
...全文
797 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
火才松 2013-05-09
  • 打赏
  • 举报
回复
同一实例下,没有什么区别。
kazake 2013-05-09
  • 打赏
  • 举报
回复
这个说起来就复杂了。 如果两个数据库文件放在不同的磁盘(组)下,有可能会因为两个库不在相同的磁盘(组)出现性能问题。 当跨库访问一个空闲的磁盘(组),有可能性能会提升;反之,性能会下降。 从简单一点来考虑,如果实例中所有数据库文件都在一个磁盘(组),那么跨库访问从执行计划上来看与当前库访问没有任何区别。
oqqXun123456 2013-05-09
  • 打赏
  • 举报
回复
引用 7 楼 DBA_Huangzj 的回复:
引用 6 楼 oqqXun123456 的回复:
引用 3 楼 DBA_Huangzj 的回复:
分开库会差一点,因为统计信息、索引、数据库的系统信息等,都是数据库级别,在一个数据库内,优化器能比较好地统筹这些信息,生成较好的执行计划,但是跨库的话,由于统计信息、索引等都是不共享的,生成的执行计划并不保证是足够好。而且涉及权限问题,所以基本上可以说跨库查询无论是单实例还是多实例中,都比在同一个库下要差
测试了取10万条数据, 跨库与否速度差不多,CPU Time只有十几毫秒的差别
单纯的一个语句并不能代表什么,你还要考虑并发情况下,而且你光看时间也不见得全面,你可以在语句前后加上set statistics io on /off和set statistics time on /off,还有对比两者的执行计划。
并发的话把这2个库放在不同的磁盘上不是更加快?
發糞塗牆 2013-05-09
  • 打赏
  • 举报
回复
引用 6 楼 oqqXun123456 的回复:
引用 3 楼 DBA_Huangzj 的回复:
分开库会差一点,因为统计信息、索引、数据库的系统信息等,都是数据库级别,在一个数据库内,优化器能比较好地统筹这些信息,生成较好的执行计划,但是跨库的话,由于统计信息、索引等都是不共享的,生成的执行计划并不保证是足够好。而且涉及权限问题,所以基本上可以说跨库查询无论是单实例还是多实例中,都比在同一个库下要差
测试了取10万条数据, 跨库与否速度差不多,CPU Time只有十几毫秒的差别
单纯的一个语句并不能代表什么,你还要考虑并发情况下,而且你光看时间也不见得全面,你可以在语句前后加上set statistics io on /off和set statistics time on /off,还有对比两者的执行计划。
oqqXun123456 2013-05-09
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
分开库会差一点,因为统计信息、索引、数据库的系统信息等,都是数据库级别,在一个数据库内,优化器能比较好地统筹这些信息,生成较好的执行计划,但是跨库的话,由于统计信息、索引等都是不共享的,生成的执行计划并不保证是足够好。而且涉及权限问题,所以基本上可以说跨库查询无论是单实例还是多实例中,都比在同一个库下要差
测试了取10万条数据, 跨库与否速度差不多,CPU Time只有十几毫秒的差别
發糞塗牆 2013-05-09
  • 打赏
  • 举报
回复
引用 4 楼 tangguangqiang 的回复:
[quote=引用 3 楼 DBA_Huangzj 的回复:] 分开库会差一点,因为统计信息、索引、数据库的系统信息等,都是数据库级别,在一个数据库内,优化器能比较好地统筹这些信息,生成较好的执行计划,但是跨库的话,由于统计信息、索引等都是不共享的,生成的执行计划并不保证是足够好。而且涉及权限问题,所以基本上可以说跨库查询无论是单实例还是多实例中,都比在同一个库下要差
当两个数据库放在不同的磁盘下也会是这样吗?[/quote]放在不同磁盘不见得有多大帮助,我仅仅在SQLServer内部讨论而已。
习惯性蹭分 2013-05-09
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
分开库会差一点,因为统计信息、索引、数据库的系统信息等,都是数据库级别,在一个数据库内,优化器能比较好地统筹这些信息,生成较好的执行计划,但是跨库的话,由于统计信息、索引等都是不共享的,生成的执行计划并不保证是足够好。而且涉及权限问题,所以基本上可以说跨库查询无论是单实例还是多实例中,都比在同一个库下要差
当两个数据库放在不同的磁盘下也会是这样吗?
發糞塗牆 2013-05-09
  • 打赏
  • 举报
回复
分开库会差一点,因为统计信息、索引、数据库的系统信息等,都是数据库级别,在一个数据库内,优化器能比较好地统筹这些信息,生成较好的执行计划,但是跨库的话,由于统计信息、索引等都是不共享的,生成的执行计划并不保证是足够好。而且涉及权限问题,所以基本上可以说跨库查询无论是单实例还是多实例中,都比在同一个库下要差

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧