PC_DS是一个面向决策支持的基准,它对决策支持系统的几个普遍适用的方面进行建模,包括查询和数据维护等,使大数据系统等新兴技术能够执行基准测试。
下面是使用Halo数据库进行tpc_ds测试:
一、硬件环境
| 硬件 | 配置说明 |
| CPU | 8核 |
| 内存 | 30G |
| 磁盘 | HDD |
二、软件环境
内核版本:Linux version 4.19.90-2112.8.0.0131.oe1.x86_64 (abuild@ecs-obsworker-0009)
操作系统版本:openEuler 20.03 (LTS-SP3)
数据库版本:Halo14
JDK:openjdk version "1.8.0_342"
三、测试数据量
表名 |
行数 |
dbgen_version |
1 |
customer_address |
1000000 |
customer_demographics |
920800 |
date_dim |
73049 |
warehouse |
15 |
ship_mode |
20 |
time_dim |
86400 |
reason |
55 |
income_band |
20 |
item |
204000 |
store |
402 |
call_center |
30 |
customer |
2000000 |
web_site |
24 |
store_returns |
28795080 |
household_demographics |
7200 |
web_page |
2040 |
promotion |
1000 |
catalog_page |
20400 |
inventory |
399330000 |
web_returns |
7197670 |
web_sales |
72001237 |
catalog_sales |
143997065 |
store_sales |
287997024 |
catalog_returns |
14404374 |
四、测试结果
查询 |
查询时间(s) |
结果集条数 |
Q1 |
1.474371836 |
100 |
Q2 |
5.248865022 |
2513 |
Q3 |
2.823529951 |
100 |
Q4 |
20.43938962 |
100 |
Q5 |
5.722485413 |
100 |
Q6 |
1.965899463 |
52 |
Q7 |
3.080526323 |
100 |
Q8 |
1.219388388 |
10 |
Q9 |
6.505446106 |
1 |
Q10 |
1.770018226 |
100 |
Q11 |
10.19516734 |
100 |
Q12 |
0.627807381 |
100 |
Q13 |
3.386689383 |
1 |
Q14 |
32.10449074 |
100 |
Q15 |
3.497079891 |
100 |
Q16 |
2.737153952 |
1 |
Q17 |
4.514564955 |
43 |
Q18 |
2.296484154 |
100 |
Q19 |
2.381205743 |
100 |
Q20 |
1.051422094 |
100 |
Q21 |
1.039325083 |
100 |
Q22 |
22.65834912 |
100 |
Q23 |
264.9530284 |
1 |
Q24 |
5.850074447 |
13 |
Q25 |
3.588927754 |
13 |
Q26 |
2.19903759 |
100 |
Q27 |
3.75447413 |
100 |
Q28 |
4.9819624 |
1 |
Q29 |
2.705489884 |
27 |
Q30 |
0.620116871 |
100 |
Q31 |
3.72106489 |
275 |
Q32 |
1.09513664 |
1 |
Q33 |
2.766806948 |
100 |
Q34 |
1.487541183 |
39938 |
Q35 |
3.177182819 |
100 |
Q36 |
2.808412412 |
100 |
Q37 |
1.490769408 |
5 |
Q38 |
3.376507072 |
1 |
Q39 |
1.665285012 |
5212 |
Q40 |
2.165695476 |
100 |
Q41 |
0.218239598 |
100 |
Q42 |
1.197048006 |
11 |
Q43 |
1.72589322 |
88 |
Q44 |
2.143288197 |
10 |
Q45 |
0.836999237 |
100 |
Q46 |
2.384627812 |
100 |
Q47 |
12.68662432 |
100 |
Q48 |
2.72730093 |
1 |
Q49 |
4.644521382 |
100 |
Q50 |
2.267629625 |
100 |
Q51 |
11.99199352 |
100 |
Q52 |
1.277174474 |
100 |
Q53 |
1.429863936 |
100 |
Q54 |
2.04926817 |
10 |
Q55 |
1.235844824 |
100 |
Q56 |
2.506194958 |
100 |
Q57 |
4.784308094 |
100 |
Q58 |
2.665566539 |
100 |
Q59 |
8.627713045 |
100 |
Q60 |
2.667188642 |
100 |
Q61 |
0.214607842 |
1 |
Q62 |
0.903522766 |
100 |
Q63 |
1.411030413 |
100 |
Q64 |
10.25961121 |
311 |
Q65 |
5.777466328 |
100 |
Q66 |
2.102772477 |
15 |
Q67 |
58.93354591 |
100 |
Q68 |
5.438787386 |
100 |
Q69 |
2.167125926 |
100 |
Q70 |
2.996668056 |
20 |
Q71 |
3.735558356 |
69886 |
Q72 |
3.884010031 |
100 |
Q73 |
1.250841151 |
170 |
Q74 |
6.737521191 |
100 |
Q75 |
8.963137716 |
100 |
Q76 |
2.71223372 |
100 |
Q77 |
3.202710684 |
100 |
Q78 |
17.32437535 |
100 |
Q79 |
3.204982181 |
100 |
Q80 |
9.20944931 |
100 |
Q81 |
0.669349131 |
100 |
Q82 |
1.872621862 |
18 |
Q83 |
0.465300131 |
100 |
Q84 |
0.387935348 |
100 |
Q85 |
2.153715395 |
50 |
Q86 |
0.800680442 |
100 |
Q87 |
3.821555644 |
1 |
Q88 |
3.768383753 |
1 |
Q89 |
1.716424162 |
100 |
Q90 |
0.509178598 |
1 |
Q91 |
0.289546603 |
30 |
Q92 |
0.568539769 |
1 |
Q93 |
3.820629323 |
100 |
Q94 |
0.867012703 |
1 |
Q95 |
11.16765821 |
1 |
Q96 |
0.987290046 |
1 |
Q97 |
3.913152662 |
1 |
Q98 |
1.961875002 |
30573 |
Q99 |
1.542928235 |
100 |
710.928197 |
155110 |
五、环境准备
5.1 安装依赖包
yum install -y gcc make flex bison byacc git5.2 解压TPC-DS安装包
unzip TPC-DS_tool_3.2.0rc1.zipcd /root/DSGen-software-code-3.2.0rc1/toolsmake
5.3 建数据生成目录
mkdir -p /data/data_testmkdir -p /data/data_test/logchown -R halo:halo /data/data_testcp /root/createtable.sql /data/data_testunzip /root/query.zip -d /data/data_test/mkdir -p/data/data_test/query/log
5.4 数据库参数修改
(1)兼容模式改成:
postgresql
(2)设置以下c2存储引擎相关参数
enable_c2=onc2_max_memory=5GB # 根据实际内存大小设置,可以设置为内存的50%左右,对于TPCDS 100GB数据量,至少设置为5GB,否则某些语句会报内存不够c2_concurrency=8 #根据实际CPU数量设置c2_date_format = '%Y-%m-%d'alter database tpcds set enable_nestloop=off;alter database tpcds set enable_mergejoin=off;alter database tpcds set hash_mem_multiplier=2;
(3)创建tpcds数据库
create database tpcds;(4)创建columnar扩展
\c tpcdscreate extension columnar;
(5) 使用c2存储引擎创建tpcds表
create table dbgen_version(dv_version varchar(16) ,dv_create_date date ,dv_create_time time ,dv_cmdline_args varchar(200)) using c2;create table customer_address(ca_address_sk integer not null,ca_address_id char(16) not null,ca_street_number char(10) ,ca_street_name varchar(60) ,ca_street_type char(15) ,ca_suite_number char(10) ,ca_city varchar(60) ,ca_county varchar(30) ,ca_state char(2) ,ca_zip char(10) ,ca_country varchar(20) ,ca_gmt_offset decimal(5,2) ,ca_location_type char(20)) using c2;create table customer_demographics(cd_demo_sk integer not null,cd_gender char(1) ,cd_marital_status char(1) ,cd_education_status char(20) ,cd_purchase_estimate integer ,cd_credit_rating char(10) ,cd_dep_count integer ,cd_dep_employed_count integer ,cd_dep_college_count integer) using c2;create table date_dim(d_date_sk integer not null,d_date_id char(16) not null,d_date date ,d_month_seq integer ,d_week_seq integer ,d_quarter_seq integer ,d_year integer ,d_dow integer ,d_moy integer ,d_dom integer ,d_qoy integer ,d_fy_year integer ,d_fy_quarter_seq integer ,d_fy_week_seq integer ,d_day_name char(9) ,d_quarter_name char(6) ,d_holiday char(1) ,d_weekend char(1) ,d_following_holiday char(1) ,d_first_dom integer ,d_last_dom integer ,d_same_day_ly integer ,d_same_day_lq integer ,d_current_day char(1) ,d_current_week char(1) ,d_current_month char(1) ,d_current_quarter char(1) ,d_current_year char(1)) using c2;create table warehouse(w_warehouse_sk integer not null,w_warehouse_id char(16) not null,w_warehouse_name varchar(20) ,w_warehouse_sq_ft integer ,w_street_number char(10) ,w_street_name varchar(60) ,w_street_type char(15) ,w_suite_number char(10) ,w_city varchar(60) ,w_county varchar(30) ,w_state char(2) ,w_zip char(10) ,w_country varchar(20) ,w_gmt_offset decimal(5,2)) using c2;create table ship_mode(sm_ship_mode_sk integer not null,sm_ship_mode_id char(16) not null,sm_type char(30) ,sm_code char(10) ,sm_carrier char(20) ,sm_contract char(20)) using c2;create table time_dim(t_time_sk integer not null,t_time_id char(16) not null,t_time integer ,t_hour integer ,t_minute integer ,t_second integer ,t_am_pm char(2) ,t_shift char(20) ,t_sub_shift char(20) ,t_meal_time char(20)) using c2;create table reason(r_reason_sk integer not null,r_reason_id char(16) not null,r_reason_desc char(100)) using c2;create table income_band(ib_income_band_sk integer not null,ib_lower_bound integer ,ib_upper_bound integer) using c2;create table item(i_item_sk integer not null,i_item_id char(16) not null,i_rec_start_date date ,i_rec_end_date date ,i_item_desc varchar(200) ,i_current_price decimal(7,2) ,i_wholesale_cost decimal(7,2) ,i_brand_id integer ,i_brand char(50) ,i_class_id integer ,i_class char(50) ,i_category_id integer ,i_category char(50) ,i_manufact_id integer ,i_manufact char(50) ,i_size char(20) ,i_formulation char(20) ,i_color char(20) ,i_units char(10) ,i_container char(10) ,i_manager_id integer ,i_product_name char(50)) using c2;create table store(s_store_sk integer not null,s_store_id char(16) not null,s_rec_start_date date ,s_rec_end_date date ,s_closed_date_sk integer ,s_store_name varchar(50) ,s_number_employees integer ,s_floor_space integer ,s_hours char(20) ,s_manager varchar(40) ,s_market_id integer ,s_geography_class varchar(100) ,s_market_desc varchar(100) ,s_market_manager varchar(40) ,s_division_id integer ,s_division_name varchar(50) ,s_company_id integer ,s_company_name varchar(50) ,s_street_number varchar(10) ,s_street_name varchar(60) ,s_street_type char(15) ,s_suite_number char(10) ,s_city varchar(60) ,s_county varchar(30) ,s_state char(2) ,s_zip char(10) ,s_country varchar(20) ,s_gmt_offset decimal(5,2) ,s_tax_precentage decimal(5,2)) using c2;create table call_center(cc_call_center_sk integer not null,cc_call_center_id char(16) not null,cc_rec_start_date date ,cc_rec_end_date date ,cc_closed_date_sk integer ,cc_open_date_sk integer ,cc_name varchar(50) ,cc_class varchar(50) ,cc_employees integer ,cc_sq_ft integer ,cc_hours char(20) ,cc_manager varchar(40) ,cc_mkt_id integer ,cc_mkt_class char(50) ,cc_mkt_desc varchar(100) ,cc_market_manager varchar(40) ,cc_division integer ,cc_division_name varchar(50) ,cc_company integer ,cc_company_name char(50) ,cc_street_number char(10) ,cc_street_name varchar(60) ,cc_street_type char(15) ,cc_suite_number char(10) ,cc_city varchar(60) ,cc_county varchar(30) ,cc_state char(2) ,cc_zip char(10) ,cc_country varchar(20) ,cc_gmt_offset decimal(5,2) ,cc_tax_percentage decimal(5,2)) using c2;create table customer(c_customer_sk integer not null,c_customer_id char(16) not null,c_current_cdemo_sk integer ,c_current_hdemo_sk integer ,c_current_addr_sk integer ,c_first_shipto_date_sk integer ,c_first_sales_date_sk integer ,c_salutation char(10) ,c_first_name char(20) ,c_last_name char(30) ,c_preferred_cust_flag char(1) ,c_birth_day integer ,c_birth_month integer ,c_birth_year integer ,c_birth_country varchar(20) ,c_login char(13) ,c_email_address char(50) ,c_last_review_date char(10)) using c2;create table web_site(web_site_sk integer not null,web_site_id char(16) not null,web_rec_start_date date ,web_rec_end_date date ,web_name varchar(50) ,web_open_date_sk integer ,web_close_date_sk integer ,web_class varchar(50) ,web_manager varchar(40) ,web_mkt_id integer ,web_mkt_class varchar(50) ,web_mkt_desc varchar(100) ,web_market_manager varchar(40) ,web_company_id integer ,web_company_name char(50) ,web_street_number char(10) ,web_street_name varchar(60) ,web_street_type char(15) ,web_suite_number char(10) ,web_city varchar(60) ,web_county varchar(30) ,web_state char(2) ,web_zip char(10) ,web_country varchar(20) ,web_gmt_offset decimal(5,2) ,web_tax_percentage decimal(5,2)) using c2;create table store_returns(sr_returned_date_sk integer ,sr_return_time_sk integer ,sr_item_sk integer not null,sr_customer_sk integer ,sr_cdemo_sk integer ,sr_hdemo_sk integer ,sr_addr_sk integer ,sr_store_sk integer ,sr_reason_sk integer ,sr_ticket_number bigint not null,sr_return_quantity integer ,sr_return_amt decimal(7,2) ,sr_return_tax decimal(7,2) ,sr_return_amt_inc_tax decimal(7,2) ,sr_fee decimal(7,2) ,sr_return_ship_cost decimal(7,2) ,sr_refunded_cash decimal(7,2) ,sr_reversed_charge decimal(7,2) ,sr_store_credit decimal(7,2) ,sr_net_loss decimal(7,2)) using c2;create table household_demographics(hd_demo_sk integer not null,hd_income_band_sk integer ,hd_buy_potential char(15) ,hd_dep_count integer ,hd_vehicle_count integer) using c2;create table web_page(wp_web_page_sk integer not null,wp_web_page_id char(16) not null,wp_rec_start_date date ,wp_rec_end_date date ,wp_creation_date_sk integer ,wp_access_date_sk integer ,wp_autogen_flag char(1) ,wp_customer_sk integer ,wp_url varchar(100) ,wp_type char(50) ,wp_char_count integer ,wp_link_count integer ,wp_image_count integer ,wp_max_ad_count integer) using c2;create table promotion(p_promo_sk integer not null,p_promo_id char(16) not null,p_start_date_sk integer ,p_end_date_sk integer ,p_item_sk integer ,p_cost decimal(15,2) ,p_response_target integer ,p_promo_name char(50) ,p_channel_dmail char(1) ,p_channel_email char(1) ,p_channel_catalog char(1) ,p_channel_tv char(1) ,p_channel_radio char(1) ,p_channel_press char(1) ,p_channel_event char(1) ,p_channel_demo char(1) ,p_channel_details varchar(100) ,p_purpose char(15) ,p_discount_active char(1)) using c2;create table catalog_page(cp_catalog_page_sk integer not null,cp_catalog_page_id char(16) not null,cp_start_date_sk integer ,cp_end_date_sk integer ,cp_department varchar(50) ,cp_catalog_number integer ,cp_catalog_page_number integer ,cp_description varchar(100) ,cp_type varchar(100)) using c2;create table inventory(inv_date_sk integer not null,inv_item_sk integer not null,inv_warehouse_sk integer not null,inv_quantity_on_hand integer) using c2;create table catalog_returns(cr_returned_date_sk integer ,cr_returned_time_sk integer ,cr_item_sk integer not null,cr_refunded_customer_sk integer ,cr_refunded_cdemo_sk integer ,cr_refunded_hdemo_sk integer ,cr_refunded_addr_sk integer ,cr_returning_customer_sk integer ,cr_returning_cdemo_sk integer ,cr_returning_hdemo_sk integer ,cr_returning_addr_sk integer ,cr_call_center_sk integer ,cr_catalog_page_sk integer ,cr_ship_mode_sk integer ,cr_warehouse_sk integer ,cr_reason_sk integer ,cr_order_number bigint not null,cr_return_quantity integer ,cr_return_amount decimal(7,2) ,cr_return_tax decimal(7,2) ,cr_return_amt_inc_tax decimal(7,2) ,cr_fee decimal(7,2) ,cr_return_ship_cost decimal(7,2) ,cr_refunded_cash decimal(7,2) ,cr_reversed_charge decimal(7,2) ,cr_store_credit decimal(7,2) ,cr_net_loss decimal(7,2)) using c2;create table web_returns(wr_returned_date_sk integer ,wr_returned_time_sk integer ,wr_item_sk integer not null,wr_refunded_customer_sk integer ,wr_refunded_cdemo_sk integer ,wr_refunded_hdemo_sk integer ,wr_refunded_addr_sk integer ,wr_returning_customer_sk integer ,wr_returning_cdemo_sk integer ,wr_returning_hdemo_sk integer ,wr_returning_addr_sk integer ,wr_web_page_sk integer ,wr_reason_sk integer ,wr_order_number bigint not null,wr_return_quantity integer ,wr_return_amt decimal(7,2) ,wr_return_tax decimal(7,2) ,wr_return_amt_inc_tax decimal(7,2) ,wr_fee decimal(7,2) ,wr_return_ship_cost decimal(7,2) ,wr_refunded_cash decimal(7,2) ,wr_reversed_charge decimal(7,2) ,wr_account_credit decimal(7,2) ,wr_net_loss decimal(7,2)) using c2;create table web_sales(ws_sold_date_sk integer ,ws_sold_time_sk integer ,ws_ship_date_sk integer ,ws_item_sk integer not null,ws_bill_customer_sk integer ,ws_bill_cdemo_sk integer ,ws_bill_hdemo_sk integer ,ws_bill_addr_sk integer ,ws_ship_customer_sk integer ,ws_ship_cdemo_sk integer ,ws_ship_hdemo_sk integer ,ws_ship_addr_sk integer ,ws_web_page_sk integer ,ws_web_site_sk integer ,ws_ship_mode_sk integer ,ws_warehouse_sk integer ,ws_promo_sk integer ,ws_order_number bigint not null,ws_quantity integer ,ws_wholesale_cost decimal(7,2) ,ws_list_price decimal(7,2) ,ws_sales_price decimal(7,2) ,ws_ext_discount_amt decimal(7,2) ,ws_ext_sales_price decimal(7,2) ,ws_ext_wholesale_cost decimal(7,2) ,ws_ext_list_price decimal(7,2) ,ws_ext_tax decimal(7,2) ,ws_coupon_amt decimal(7,2) ,ws_ext_ship_cost decimal(7,2) ,ws_net_paid decimal(7,2) ,ws_net_paid_inc_tax decimal(7,2) ,ws_net_paid_inc_ship decimal(7,2) ,ws_net_paid_inc_ship_tax decimal(7,2) ,ws_net_profit decimal(7,2)) using c2;create table catalog_sales(cs_sold_date_sk integer ,cs_sold_time_sk integer ,cs_ship_date_sk integer ,cs_bill_customer_sk integer ,cs_bill_cdemo_sk integer ,cs_bill_hdemo_sk integer ,cs_bill_addr_sk integer ,cs_ship_customer_sk integer ,cs_ship_cdemo_sk integer ,cs_ship_hdemo_sk integer ,cs_ship_addr_sk integer ,cs_call_center_sk integer ,cs_catalog_page_sk integer ,cs_ship_mode_sk integer ,cs_warehouse_sk integer ,cs_item_sk integer not null,cs_promo_sk integer ,cs_order_number bigint not null,cs_quantity integer ,cs_wholesale_cost decimal(7,2) ,cs_list_price decimal(7,2) ,cs_sales_price decimal(7,2) ,cs_ext_discount_amt decimal(7,2) ,cs_ext_sales_price decimal(7,2) ,cs_ext_wholesale_cost decimal(7,2) ,cs_ext_list_price decimal(7,2) ,cs_ext_tax decimal(7,2) ,cs_coupon_amt decimal(7,2) ,cs_ext_ship_cost decimal(7,2) ,cs_net_paid decimal(7,2) ,cs_net_paid_inc_tax decimal(7,2) ,cs_net_paid_inc_ship decimal(7,2) ,cs_net_paid_inc_ship_tax decimal(7,2) ,cs_net_profit decimal(7,2)) using c2;create table store_sales(ss_sold_date_sk integer ,ss_sold_time_sk integer ,ss_item_sk integer not null,ss_customer_sk integer ,ss_cdemo_sk integer ,ss_hdemo_sk integer ,ss_addr_sk integer ,ss_store_sk integer ,ss_promo_sk integer ,ss_ticket_number bigint not null,ss_quantity integer ,ss_wholesale_cost decimal(7,2) ,ss_list_price decimal(7,2) ,ss_sales_price decimal(7,2) ,ss_ext_discount_amt decimal(7,2) ,ss_ext_sales_price decimal(7,2) ,ss_ext_wholesale_cost decimal(7,2) ,ss_ext_list_price decimal(7,2) ,ss_ext_tax decimal(7,2) ,ss_coupon_amt decimal(7,2) ,ss_net_paid decimal(7,2) ,ss_net_paid_inc_tax decimal(7,2) ,ss_net_profit decimal(7,2)) using c2;
六、导入数据
COPYdbgen_version from '/data/data_test/dbgen_version.dat' with DELIMITER '|' NULL '' ;COPYcustomer_address from '/data/data_test/customer_address.dat' with DELIMITER '|' NULL '' ;COPYcustomer_demographics from '/data/data_test/customer_demographics.dat' with DELIMITER '|' NULL '' ;COPYdate_dim from '/data/data_test/date_dim.dat' with DELIMITER '|' NULL '' ;COPYwarehouse from '/data/data_test/warehouse.dat' with DELIMITER '|' NULL '' ;COPYship_mode from '/data/data_test/ship_mode.dat' with DELIMITER '|' NULL '' ;COPYtime_dim from '/data/data_test/time_dim.dat' with DELIMITER '|' NULL '' ;COPYreason from '/data/data_test/reason.dat' with DELIMITER '|' NULL '' ;COPYincome_band from '/data/data_test/income_band.dat' with DELIMITER '|' NULL '' ;COPYitem from '/data/data_test/item.dat' with DELIMITER '|' NULL '' ;COPYstore from '/data/data_test/store.dat' with DELIMITER '|' NULL '' ;COPYcall_center from '/data/data_test/call_center.dat' with DELIMITER '|' NULL '' ;COPYcustomer from '/data/data_test/tcustomer.dat' with DELIMITER '|' NULL '' ;COPYweb_site from '/data/data_test/web_site.dat' with DELIMITER '|' NULL '' ;COPYstore_returns from '/data/data_test/store_returns.dat' with DELIMITER '|' NULL '' ;COPYhousehold_demographics from '/data/data_test/household_demographics.dat' with DELIMITER '|' NULL '' ;COPYweb_page from '/data/data_test/web_page.dat' with DELIMITER '|' NULL '' ;COPYpromotion from '/data/data_test/promotion.dat' with DELIMITER '|' NULL '' ;COPYcatalog_page from '/data/data_test/catalog_page.dat' with DELIMITER '|' NULL '' ;COPYinventory from '/data/data_test/inventory.dat' with DELIMITER '|' NULL '' ;COPYcatalog_returns from '/data/data_test/catalog_returns.dat' with DELIMITER '|' NULL '' ;COPYweb_returns from '/data/data_test/web_returns.dat' with DELIMITER '|' NULL '' ;COPYweb_sales from '/data/data_test/web_sales.dat' with DELIMITER '|' NULL '' ;COPYcatalog_sales from '/data/data_test/catalog_sales.dat' with DELIMITER '|' NULL '' ;COPYstore_sales from '/data/data_test/store_sales.dat' with DELIMITER '|' NULL '' ;
七、执行tpcds测试语句,并记录时间
begin_time=`date +%s.%N`nohup bash -x /root/query_exec.sh > /data/data_test/query/log/query_exec.log 2>&1############脚本内容################################################ query_path='/data/data_test/query'# total_cost=0# for i in {1..99}# do#echo "begin run Q${i}, ${query_path}/Query${i}.sql , `date`"#begin_time=`date +%s.%N`#su - halo -c " psql -d oracle -f ${query_path}/Query${i}.sql > ${query_path}/log/log_query${i}_`date`.out "#rc=$?#end_time=`date +%s.%N`#cost=`echo "$end_time-$begin_time"|bc`#total_cost=`echo "$total_cost+$cost"|bc`#if [ $rc -ne 0 ] ; then# printf "run Q%s fail, cost: %.2f, totalCost: %.2f, `date`\n" $i $cost $total_cost#else# printf "run Q%s succ, cost: %.2f, totalCost: %.2f, `date`\n" $i $cost $total_cost#fi# done###############################################################################################################end_time=`date +%s.%N`