77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/bin/env python
 | |
| __author__ = 'dongyun.zdy'
 | |
| import subprocess as sp
 | |
| import os
 | |
| 
 | |
| schema_file = 'rowstore.schema'
 | |
| outfile = 'rowstore.result'
 | |
| 
 | |
| 
 | |
| def remove_schema():
 | |
|     global schema_file
 | |
|     if os.path.exists(schema_file):
 | |
|         os.remove(schema_file)
 | |
| 
 | |
| def write_schema(s):
 | |
|     global schema_file
 | |
|     of = open(schema_file, 'w')
 | |
|     of.write(s)
 | |
|     of.close()
 | |
| 
 | |
| 
 | |
| def make_seq(t, cnt):
 | |
|     types = [t]
 | |
|     types *= cnt
 | |
|     return types
 | |
| 
 | |
| 
 | |
| def make_schema(types):
 | |
|     global schema_file
 | |
|     remove_schema()
 | |
|     col_id = 1
 | |
|     s = "create table t1 ("
 | |
|     for t in types:
 | |
|         s += "c%d %s, " % (col_id, t)
 | |
|         col_id += 1
 | |
|     s = s[:-2]
 | |
|     s += ', primary key (c1))'
 | |
|     print s
 | |
|     write_schema(s)
 | |
| 
 | |
| 
 | |
| cmdform = 'LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./cost_model_util -RBGK -t material -s rowstore.schema -r 10 -i1'.split()
 | |
| 
 | |
| 
 | |
| types_to_test = {'bigint':'bigint', 'double':'double', 'float':'float', 'timestamp':'timestamp', 'number':'number(20,3)', 'v32':'varchar(32)', 'v64':'varchar(64)', 'v128':'varchar(128)'}
 | |
| row_counts = [1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 20000, 50000]
 | |
| col_nums = [1, 3, 20, 50]
 | |
| case_run_time = 7
 | |
| 
 | |
| total_case_count = len(types_to_test) * len(row_counts) * len(col_nums)
 | |
| case_count = 0
 | |
| 
 | |
| if os.path.exists(outfile):
 | |
|     os.remove(outfile)
 | |
| 
 | |
| # for t in types_to_test:
 | |
| #     outfile = 'rowstore.result.' + t
 | |
| #     if os.path.exists(outfile):
 | |
| #         os.remove(outfile)
 | |
| #     for n in col_nums:
 | |
| #         make_schema(make_seq(types_to_test[t], n))
 | |
| #         for rc in row_counts:
 | |
| #             cmdform[8] = str(rc)
 | |
| #             case_count += 1
 | |
| #             prompt = "# %d / %d %s col_cnt = %d rc = %d \n# %s" % (case_count, total_case_count, t, n, rc, ' '.join(cmdform))
 | |
| #             print prompt
 | |
| #             sp.check_call('echo "%s" >> ' % prompt + outfile, shell=True)
 | |
| #             for times in xrange(0, case_run_time):
 | |
| #                 print times
 | |
| #                 sp.check_call("echo -n '%s,' >> " % str(rc) + outfile, shell=True)
 | |
| #                 sp.check_call("echo -n '%s,' >> " % str(n) + outfile, shell=True)
 | |
| #                 sp.check_call(" ".join(cmdform) + ' >> ' + outfile, shell=True)
 | |
| 
 | |
| make_schema(make_seq('bigint', 50))
 | |
| 
 | |
| 
 | 
