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 を返すのに 4 分ほどかかりますが、それに対して開発することは不可能です。

たとえば、このクエリを変更して、DB の最初の 20 行のみを表示し、200 万行ではなく、開発目的でより高速に実行できるようにする方法はありますか?

4

1 に答える 1

2

これが開発目的である場合は、賢明なことを行い、システム全体を代表する小さなデータベースを作成してください。create table as select ステートメントを使用してこれを行うことができます。

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 に答える