none
关于利用分布式分区视图实现联合数据库服务器的问题? RRS feed

  • 问题

  • 经过测试:利用分布式分区视图实现联合数据库服务器后,对于查询560000行数据出来,反而速度比不利用分布式分区视图还慢了很多,差不多多了一半的时间,我发出的命令是查询出这560000行数据出来,这是为什么呢?lazy schema validation也设置为true了;

    实验环境是:在同一机器上,装了两个虚拟机,将真实机器设置为客户端,将两台虚拟机设置为服务器端;
      将数据源都放在虚拟机里面的,即:都是从虚拟机里面获取数据的;

    • 已编辑 capfdbse 2011年12月18日 3:15 修改内容
    2011年12月18日 2:48

答案

  • Still can get performance gain if most of queries access data on local tables, that means have to design app to connect to right sql server based on data to access. Can also handle huge amount of processes across multiple servers, that's why used by many web sites. 

    • 已标记为答案 capfdbse 2011年12月22日 3:03
    2011年12月21日 4:30
  • Possible but replication will add some latency and maintenance overhead on involved servers.
    • 已标记为答案 capfdbse 2011年12月22日 3:03
    2011年12月21日 15:00

全部回复

  • 你这样测试,虚拟机设置最优的情况,用DPV也仅仅能达到真实机器的90%的性能。

    更何况你的虚拟机设置不一定最优化。

    你得找两台真实机器来测试才行。一台真实机器虚拟出来的两个服务器怎么可能比原来的机器更快。


    想不想时已是想,不如不想都不想。
    2011年12月18日 5:37
    版主
  • 谈谈对分布式分区视图的理解,不知是否正确:
    客户端A,分布式分区视图将数据分布在B C D三台服务器上:
    如果A访问B(执行一个查询命令,返回一些原始记录)但是这些原始记录几乎都在D上,那么D上的原始记录还要在B处进行汇总,汇总之后再返回给客户端A,如果是这样一个过程,估计在这种情况里,分布式分区视图会没有优势,可能比不分区还要慢;
    如果发出的命令是汇总一些数据(如:SUM AVG等),而且几乎涵盖了所有分区,这样的话,每个分区所在的机器都参与运算,但是运算结果的数据量却很小,那么网络传输就几乎不用考虑了,那么这种情况,分布式分区视图就会占有很大优势;

    不知,是否可以这样理解?
    2011年12月18日 10:45
  • Query performance will be different depending on whether get rows from remote server or not, so federated db maybe not good choice for everyone. 

    2011年12月18日 18:39
  • 经过两台真实机器进行测试 分布式分区视图,两台机器性能差不多:

    将900万的数据分不到两台机器里面去,结果发现执行 select count(*)操作视图并没有起到效果,与不分区,直接在一台机器上执行所化的时间几乎一样,感觉数据库没有执行并行操作,而是一台机器一台机器串行操作的!

     

    难道分布式分区分区视图并不能达到并行查询的效果!

    2011年12月21日 0:17
  • Federated server doesn't mean parallel processing, because sql gets data from multiple servers via view that uses union all operator.
    2011年12月21日 3:31
  • 那分布式分区视图岂不是不能提高查询速度了,要是不能同时从各个成员服务器上执行查询的话!
    2011年12月21日 4:11
  • Still can get performance gain if most of queries access data on local tables, that means have to design app to connect to right sql server based on data to access. Can also handle huge amount of processes across multiple servers, that's why used by many web sites. 

    • 已标记为答案 capfdbse 2011年12月22日 3:03
    2011年12月21日 4:30
  • 也许应该这样理解:

    再次做了实验,虽然发现查询分布式视图与查询基本表所花掉的时间几乎一样,但是:

    只查询没有分区的表由于在一台机器上进行的查询,所以花掉的CPU 以及 内存要明显多于查询分布式视图的CPU 内存,因为分布式视图是在两台机器上进行的,所以,也就是说:用了分布式分区视图:可以接受更多的操作;比如:一台机器我们可以承受的最大量为10000个人的访问,那么由于分布式分区视图由于跨越到两台机器上之后,可能就能承受20000个人 的访问了;

    如果是像上面这样的理解,可能复制技术也可以达到目的哟!

    2011年12月21日 6:47
  • Possible but replication will add some latency and maintenance overhead on involved servers.
    • 已标记为答案 capfdbse 2011年12月22日 3:03
    2011年12月21日 15:00
  • ok,thank you!

    why did you answer qustions in english!certainly , I also can study english from your words!

    2011年12月22日 3:00
  • I'm not in China and can't type Chinese.
    2011年12月22日 4:24
  • 呵呵!

    you can read chinese,but can't write  chinese!

    2011年12月23日 2:21