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

📄 tscli.c

📁 Mysql for Windows最新源码
💻 C
📖 第 1 页 / 共 4 页
字号:
	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 delete test %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/	/*------------------------------------------------------*/	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE CONSISTENT_READ_TEST () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	SELECT COUNT(*), SUM(COL22) INTO int1, int2""			FROM TS_TABLE2""			CONSISTENT READ;""	ASSERT(int2 = 999 * 500);""	ASSERT(int1 = 1000);""	""	""	END;"	);		query->trx = trx2;	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 consistent read test %lu milliseconds\n",								tm - oldtm);	/*------------------------------------------------------*/		query = pars_sql("	PROCEDURE ROLLBACK_SPEED_TEST () IS""	""	BEGIN""	ROLLBACK 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 rollback %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/	query = pars_sql("	PROCEDURE UPDATE_SPEED_TEST () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	UPDATE TS_TABLE2 SET COL21 = COL21 + 1000, COL22 = COL22 + 1""			WHERE COL21 < 1000;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	UPDATE TS_TABLE2 SET COL21 = COL21, COL22 = COL22;""	""	SELECT SUM(COL21), SUM(COL22) INTO int1, int2""			FROM TS_TABLE2""			CONSISTENT READ;""	ASSERT(int2 = 1000 + 999 * 500);""	ASSERT(int1 = 1000000 + 999 * 500);""	UPDATE TS_TABLE2 SET COL21 = COL21 + 1000, COL22 = COL22 + 1""			WHERE COL21 < 2000;""	UPDATE TS_TABLE2 SET COL21 = COL21 + 1000, COL22 = COL22 + 1""			WHERE COL21 < 3000;""	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 update test %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/	/*------------------------------------------------------*/	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE CONSISTENT_READ_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);""	""	""	END;"	);		query->trx = trx2;	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 consistent read 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"); */	/*------------------------------------------------------*/	/*------------------------------------------------------*/	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE CONSISTENT_READ_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);""	""	""	END;"	);		query->trx = trx2;	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 consistent read test %lu milliseconds\n",								tm - oldtm);	/*------------------------------------------------------*/	printf("Will start insert test2\n");	os_thread_sleep(2000000);	query = pars_sql("	PROCEDURE INSERT_SPEED_TEST2 () IS""	int1 INT;""	int2 INT;""	""	BEGIN""	INSERT INTO TS_TABLE3 SELECT * FROM TS_TABLE2;""	""	SELECT COUNT(*) INTO int1""			FROM TS_TABLE2;""	SELECT COUNT(*) INTO int2""			FROM TS_TABLE3;""	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 test2 %lu milliseconds\n", tm - oldtm);/*	sync_print(); */		/*------------------------------------------------------*/		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);	/*------------------------------------------------------*/	query = pars_sql("	PROCEDURE JOIN_SPEED_TEST () IS""	int1 INT;""	""	BEGIN""	SELECT COUNT(*) INTO int1""			FROM TS_TABLE2, TS_TABLE3""			WHERE COL21 = COL31;""	ASSERT(int1 = 1000);""	""	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 join test %lu milliseconds\n", tm - oldtm);	/*------------------------------------------------------*/		dict_table_print_by_name("TS_TABLE1");	dict_table_print_by_name("TS_TABLE2");/*	dict_table_print_by_name("SYS_TABLES");	dict_table_print_by_name("SYS_COLUMNS");	dict_table_print_by_name("SYS_INDEXES");	dict_table_print_by_name("SYS_FIELDS");*/	query = pars_sql("	PROCEDURE INSERT_TEST () IS""	var1 CHAR;""	var2 CHAR;""	int1 INT;""	int2 INT;""	sum1 INT;""	finished INT;""	rnd_var1 INT;""	rnd_var2 INT;""	""	DECLARE CURSOR cursor2""	IS	SELECT COL21, COL22""			FROM TS_TABLE2""			WHERE COL21 > 5;""	""	BEGIN""	int1 := 0;""	WHILE int1 < 10 LOOP""		rnd_var1 := int1;""		PRINTF('Round '); PRINTF(int1);""		INSERT INTO TS_TABLE2 VALUES (int1, rnd_var1,""					'123456789012345678901234567890');""		SELECT COL22 INTO rnd_var2 FROM TS_TABLE2""						WHERE COL21 = int1;""		ASSERT(rnd_var1 = rnd_var2);""		int1 := int1 + 1;""	END LOOP;""	""	PRINTF('First explicit cursor loop:');""	OPEN cursor2;" "	finished := 0;""	""	WHILE finished = 0 LOOP""		FETCH cursor2 INTO int1, int2;""		IF cursor2 % NOTFOUND THEN""			finished := 1;""			PRINTF('Loop now finished');""		ELSE""			PRINTF('Row fetched, values:');""			PRINTF(int1); PRINTF(int2);""			ASSERT(int1 = int2);""			UPDATE TS_TABLE2 SET COL22 = COL22 + 100""				WHERE CURRENT OF cursor2;""		END IF;""	END LOOP;""	CLOSE cursor2;""	""	PRINTF('Second explicit cursor loop:');""	OPEN cursor2;" "	finished := 0;""	""	WHILE finished = 0 LOOP""		FETCH cursor2 INTO int1, int2;""		IF cursor2 % NOTFOUND THEN""			finished := 1;""		ELSE""			PRINTF('Row fetched, values:');""			PRINTF(int1); PRINTF(int2);""			ASSERT(int1 + 100 = int2);""			UPDATE TS_TABLE2 SET COL22 = int2 + 100""				WHERE CURRENT OF cursor2;""		END IF;""	END LOOP;""	CLOSE cursor2;""	""	SELECT COUNT(*), SUM(COL22) INTO int1, sum1""			FROM TS_TABLE2;""	PRINTF('Now table 2 has this many rows: '); PRINTF(int1);""	PRINTF('and the sum of COL22: '); PRINTF(sum1);""	""	INSERT INTO TS_TABLE3""			SELECT COL21, COL22 + 10, COL23 FROM TS_TABLE2;""	""	SELECT COUNT(*), SUM(COL32) INTO int1, sum1""			FROM TS_TABLE2, TS_TABLE3""			WHERE COL21 + 2 = COL31;""	PRINTF('Join table has this many rows: '); PRINTF(int1);""	PRINTF('and the sum of COL32: '); PRINTF(sum1);""	""	ROLLBACK WORK;""	""	SELECT COUNT(*), SUM(COL21) INTO int1, sum1 FROM TS_TABLE2;""	PRINTF('Now table 2 has this many rows: '); PRINTF(int1);""	PRINTF('and the sum of COL21: '); PRINTF(sum1);""	""	""	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);	dict_table_print_by_name("TS_TABLE1");	dict_table_print_by_name("TS_TABLE2");	query = pars_sql("	PROCEDURE DELETE_TEST () IS""	int1 INT;""	sum1 INT;""	finished INT;""	""	DECLARE CURSOR cursor2""	IS	SELECT""			FROM TS_TABLE2""			WHERE COL21 < 10;""	""	BEGIN""	int1 := 0;""	WHILE int1 < 10 LOOP""		PRINTF('Round '); PRINTF(int1);""		INSERT INTO TS_TABLE2 VALUES (int1, int1, TO_CHAR(int1));""		int1 := int1 + 1;""	END LOOP;""	COMMIT WORK;""	PRINTF('Delete all the rows:');""	OPEN cursor2;" "	finished := 0;""	""	WHILE finished = 0 LOOP""		FETCH cursor2 INTO;""		IF cursor2 % NOTFOUND THEN""			finished := 1;""			PRINTF('Loop now finished: all rows deleted');""		ELSE""			DELETE FROM TS_TABLE2""				WHERE CURRENT OF cursor2;""		END IF;""	END LOOP;""	CLOSE cursor2;""	""	SELECT COUNT(*), SUM(COL22) INTO int1, sum1""			FROM TS_TABLE2;""	PRINTF('Now table 2 has this many rows, and their sum is: ');""	PRINTF(int1); PRINTF(sum1);""	ASSERT((int1 = 0) AND (sum1 = 0));""	""	ROLLBACK WORK;""	""	SELECT COUNT(*), SUM(COL22) INTO int1, sum1""			FROM TS_TABLE2;""	""	PRINTF(int1); PRINTF(sum1);""	ASSERT((int1 = 10) AND (sum1 = 45));""	COMMIT WORK;""	DELETE FROM TS_TABLE2 WHERE COL22 = 5;""	SELECT COUNT(*), SUM(COL22) INTO int1, sum1""			FROM TS_TABLE2;""	PRINTF(int1); PRINTF(sum1);""	ASSERT((int1 = 9) AND (sum1 = 40));""	DELETE FROM TS_TABLE2 WHERE COL23 = TO_CHAR(6);""	SELECT COUNT(*), SUM(COL22) INTO int1, sum1""			FROM TS_TABLE2;""	PRINTF(int1);""	PRINTF(sum1);""	ASSERT((int1 = 8) AND (sum1 = 34));""	DELETE FROM TS_TABLE2 WHERE COL23 = TO_CHAR(6);""	SELECT COUNT(*), SUM(COL22) INTO int1, sum1""			FROM TS_TABLE2;""	PRINTF(int1);""	PRINTF(sum1);""	ASSERT((int1 = 8) AND (sum1 = 34));""	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);	que_run_threads(thr);	return(0);}#endif/********************************************************************Main test function. */void main(void) /*======*/{	ulint	tm, oldtm;	oldtm = ut_clock();		test_c(NULL);		tm = ut_clock();	printf("Wall time for test %lu milliseconds\n", tm - oldtm);	printf("TESTS COMPLETED SUCCESSFULLY!\n");} 

⌨️ 快捷键说明

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