0

对对对!我知道!像下面的命令那样在rails中传递SQL是完全错误的,但我保证!:)这只是为了一些基准目的

  @medications = TestPharmOrderMain.select("brand_name,form,dose,generic_name as alternative,sum (order_count)
  as total_count
  ,sum(order_cost) as total_cost").group("brand_name,form,dose,generic_name").limit(5)

我在其上运行此 REST 服务的 Postgresql 有 200 万行,并且需要大约四分钟才能从该查询中返回 JSON,这是不可能针对它进行开发的。

有没有办法可以将此查询更改为例如仅查看数据库中的前 20 行而不是 200 万行,以便它为我的开发目的运行得更快?

4

1 回答 1

2

如果这是出于开发目的,请明智地创建一个代表整个系统的小型数据库。您可以使用创建表作为选择语句来执行此操作:

Create table my_test_table  
as    
select brand_name,form,dose,generic_name as alternative,sum (order_count)
  as total_count
  ,sum(order_cost) as total_cost  
from table  
  group by brand_name,form,dose,generic_name
  limit 5

现在您可以将您的测试查询指向my_test_table它,它只有 5 条记录,因此速度非常快。

现在您还可以将其抵消为 DBUnit 之类的东西,它本质上是一个位于XUnit 之上的框架。所以这可以很容易地集成到我认为是 RubyUnit 中完成的测试中。

于 2013-05-24T13:47:59.453 回答