⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tscli.c

📁 Mysql for Windows最新源码
💻 C
📖 第 1 页 / 共 4 页
字号:
"	PROCEDURE STOCK_LEVEL () IS"""" 	n_items INT;"" 	n_warehouses INT;"" 	n_districts INT;""	n_customers INT;""	d_id CHAR;""	w_id CHAR;""	o_id INT;""	stock_count INT;""	threshold INT;""""	BEGIN"""" 	n_items := 200;"" 	n_warehouses := 1;"" 	n_districts := 10;"" 	n_customers := 200;""""	w_id := TO_BINARY(RND(1, n_warehouses), 2);""	d_id := TO_BINARY(47 + 4, 1);""""	threshold := RND(10, 20);""""	SELECT D_NEXT_O_ID INTO o_id""	FROM DISTRICT""		WHERE D_W_ID = w_id AND D_ID = d_id;""""	SELECT COUNT(*) INTO stock_count""	FROM ORDER_LINE, STOCK""		WHERE OL_W_ID = w_id AND OL_D_ID = d_id""			AND OL_O_ID >= o_id - 20 AND OL_O_ID < o_id""			AND S_W_ID = w_id AND S_I_ID = OL_I_ID""			AND S_QUANTITY < threshold;""	/* PRINTF(stock_count, ' items under threshold ', threshold); */""	/* COMMIT WORK; */"""	"	END;"	;		stock_level_query = pars_sql(str);	/*-----------------------------------------------------------*/	oldtm = ut_clock();	for (i = 0; i < 10; i++) {		mutex_enter(&kernel_mutex);			thr = que_fork_start_command(new_order_query,							SESS_COMM_EXECUTE, 0);		mutex_exit(&kernel_mutex);				que_run_threads(thr);							mutex_enter(&kernel_mutex);			thr = que_fork_start_command(payment_query,							SESS_COMM_EXECUTE, 0);		mutex_exit(&kernel_mutex);				que_run_threads(thr);		if (i % 10 == 3) {			mutex_enter(&kernel_mutex);				thr = que_fork_start_command(order_status_query,							SESS_COMM_EXECUTE, 0);			mutex_exit(&kernel_mutex);					que_run_threads(thr);		}		if ((i % 10 == 6) || (i % 100 == 60)) {			mutex_enter(&kernel_mutex);				thr = que_fork_start_command(delivery_query,							SESS_COMM_EXECUTE, 0);			mutex_exit(&kernel_mutex);					que_run_threads(thr);		}		if (i % 10 == 9) {			mutex_enter(&kernel_mutex);				thr = que_fork_start_command(stock_level_query,							SESS_COMM_EXECUTE, 0);			mutex_exit(&kernel_mutex);					que_run_threads(thr);		}		if ((i > 0) && (i % 200 == 0)) {			mutex_enter(&kernel_mutex);				thr = que_fork_start_command(commit_query,							SESS_COMM_EXECUTE, 0);			mutex_exit(&kernel_mutex);					que_run_threads(thr);		}	}		tm = ut_clock();	printf("Wall time for test %lu milliseconds\n", tm - oldtm);	return(0);}#ifdef notdefined/*********************************************************************General test. */ulinttest1(/*==*/	void*	arg){	sess_t*		sess;	sess_t*		sess2;	com_endpoint_t*	com_endpoint;	mem_heap_t*	heap;	que_fork_t*	query;	que_thr_t*	thr;	trx_t*		trx;	trx_t*		trx2;	ulint		tm, oldtm;	ulint		j;		UT_NOT_USED(arg);	printf("-------------------------------------------------\n");	printf("TEST 1. GENERAL TEST\n");	heap = mem_heap_create(512);	com_endpoint = (com_endpoint_t*)heap;	/* This is a dummy non-NULL						value */	mutex_enter(&kernel_mutex);		sess = sess_open(ut_dulint_zero, com_endpoint, (byte*)"user1", 6);	sess2 = sess_open(ut_dulint_zero, com_endpoint, (byte*)"user2", 6);		trx = sess->trx;	trx2 = sess2->trx;	mutex_exit(&kernel_mutex);	/*------------------------------------------------------*/	query = pars_sql("	PROCEDURE CREATE_TABLE () IS""	BEGIN""	CREATE TABLE TS_TABLE1 (COL1 CHAR, COL2 CHAR, COL3 CHAR);""	CREATE TABLE TS_TABLE2 (COL21 INT, COL22 INT, COL23 CHAR);""	CREATE TABLE TS_TABLE3 (COL31 INT, COL32 INT, COL33 CHAR);""	CREATE TABLE TS_TABLE4 (COL41 INT, COL42 INT, COL43 CHAR);""	CREATE UNIQUE CLUSTERED INDEX IND1 ON TS_TABLE1 (COL1);""	CREATE UNIQUE CLUSTERED INDEX IND21 ON TS_TABLE2 (COL21);""	CREATE UNIQUE CLUSTERED INDEX IND31 ON TS_TABLE3 (COL31);""	CREATE CLUSTERED INDEX IND41 ON TS_TABLE4 (COL41);""	END;"	);	query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	que_run_threads(thr);	/*------------------------------------------------------*/	/*------------------------------------------------------*/		printf("Will start insert test\n");	query = pars_sql("	PROCEDURE INSERT_SPEED_TEST () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	int2 := 0;""	int1 := 0;""	WHILE int1 < 40 LOOP""		INSERT INTO TS_TABLE2 VALUES (int1, int1 - 100 * (int1 / 100),""					'123456789012345678901234567890');""		int1 := int1 + 1;""	""	END LOOP;""	""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for insert test %lu milliseconds\n", tm - oldtm);		/*------------------------------------------------------*/	/*------------------------------------------------------*/		query = pars_sql("	PROCEDURE COMMIT_SPEED_TEST () IS""	""	BEGIN""	COMMIT WORK;""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for commit %lu milliseconds\n", tm - oldtm);/*	dict_table_print_by_name("TS_TABLE2"); */	/*------------------------------------------------------*/	/*------------------------------------------------------*/	printf("Will start insert test2\n");	query = pars_sql("	PROCEDURE INSERT_SPEED_TEST2 () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	INSERT INTO TS_TABLE3 SELECT * FROM TS_TABLE2;""	""	""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for insert test2 %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/		query = pars_sql("	PROCEDURE COMMIT_SPEED_TEST () IS""	""	BEGIN""	COMMIT WORK;""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for commit %lu milliseconds\n", tm - oldtm);/*	dict_table_print_by_name("TS_TABLE2"); */	/*------------------------------------------------------*/	/*------------------------------------------------------*//*	os_thread_sleep(1000000); */	/*	btr_search_table_print_info("TS_TABLE3"); */	query = pars_sql("	PROCEDURE JOIN_SPEED_TEST () IS""	int1 INT;""	""	BEGIN""	SELECT COUNT(*) INTO int1""			FROM TS_TABLE2, TS_TABLE3""			WHERE COL21 = COL31""			CONSISTENT READ;""	PRINTF(int1);""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);  	for (j = 0; j < 20; j++) {		mutex_enter(&kernel_mutex);					ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE,									0));		mutex_exit(&kernel_mutex);				oldtm = ut_clock();				que_run_threads(thr);				tm = ut_clock();		printf("Wall time for join test %lu milliseconds\n",								tm - oldtm);  	}/*	btr_search_table_print_info("TS_TABLE3"); */	/*------------------------------------------------------*/	printf("Will start update test\n");	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE UPDATE_SPEED_TEST () IS""	int1 INT;""	BEGIN""	UPDATE TS_TABLE2 SET COL22 = COL22 + 1;""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for update test %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/	/*------------------------------------------------------*/		query = pars_sql("	PROCEDURE COMMIT_SPEED_TEST () IS""	""	BEGIN""	COMMIT WORK;""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for commit %lu milliseconds\n", tm - oldtm);/*	dict_table_print_by_name("TS_TABLE2"); */	/*------------------------------------------------------*/	/*------------------------------------------------------*/	printf("Will start TPC-A\n");	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE TPC_A_SPEED_TEST () IS""	int1 INT;""	""	BEGIN""	int1 := 0;""	WHILE int1 < 1000 LOOP""		INSERT INTO TS_TABLE4 VALUES (int1, int1,""					'123456789012345678901234567890');""		UPDATE TS_TABLE2 SET COL22 = COL22 + 1""			WHERE COL21 = int1;""		UPDATE TS_TABLE2 SET COL22 = COL22 + 1""			WHERE COL21 = int1 + 1;""		UPDATE TS_TABLE2 SET COL22 = COL22 + 1""			WHERE COL21 = int1 + 2;""		int1 := int1 + 1;""	END LOOP;""	""	END;"	);	/*"	SELECT COUNT(*) INTO int1 FROM TS_TABLE2 WHERE COL22 = COL21 + 4;""	PRINTF(int1);""	SELECT COUNT(*) INTO int1 FROM TS_TABLE4;""	PRINTF(int1);"*/	query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for TPC-A test %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/		query = pars_sql("	PROCEDURE COMMIT_SPEED_TEST () IS""	""	BEGIN""	COMMIT WORK;""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for commit %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/	printf("Will start insert test\n");	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE INSERT_SPEED_TEST () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	int2 := 0;""	int1 := 0;""	WHILE int1 < 1000 LOOP""		INSERT INTO TS_TABLE2 VALUES (int1, int1,""					'123456789012345678901234567890');""		int1 := int1 + 1;""	""	END LOOP;""	SELECT COUNT(*) INTO int2""			FROM TS_TABLE2;""	ASSERT(int1 = int2);""	""	COMMIT WORK;""	""	END;"	);		query->trx = trx;	thr = UT_LIST_GET_FIRST(query->thrs);	mutex_enter(&kernel_mutex);		ut_a(thr == que_fork_start_command(query, SESS_COMM_EXECUTE, 0));		mutex_exit(&kernel_mutex);	oldtm = ut_clock();		que_run_threads(thr);		tm = ut_clock();	printf("Wall time for insert test %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/	/*------------------------------------------------------*/	query = pars_sql("	PROCEDURE DELETE_SPEED_TEST () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	SELECT COUNT(*), SUM(COL22) INTO int1, int2""			FROM TS_TABLE2""			CONSISTENT READ;""	ASSERT(int1 = 1000);""	ASSERT(int2 = 999 * 500);""	DELETE FROM TS_TABLE2;""	""	SELECT COUNT(*), SUM(COL22) INTO int1, int2""			FROM TS_TABLE2""			CONSISTENT READ;""	ASSERT(int1 = 0);""	ASSERT(int2 = 0);""	""	END;"	);		query->trx = trx;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -