config root man

Current Path : /home/usr.opt/mysql57/mysql-test/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/t/profiling.test

# The include statement below is a temp one for tests that are yet to
#be ported to run with InnoDB,
#but needs to be kept for tests that would need MyISAM in future.
--source include/force_myisam_default.inc

--source include/have_profiling.inc

# Verify that the protocol isn't violated if we ask for profiling info
# before profiling has recorded anything.
--disable_warnings
show profiles;
show profile all;
--enable_warnings

# default is OFF
show session variables like 'profil%';
--disable_warnings
select @@profiling;
--enable_warnings

# But size is okay
--disable_warnings
set @start_value= @@global.profiling_history_size;
set global profiling_history_size=100;
--enable_warnings
show global variables like 'profil%';

# turn on for testing
--disable_warnings
set session profiling = ON;
set session profiling_history_size=30;  # small enough to overflow
--enable_warnings

# verify it is active
show session variables like 'profil%';
--disable_warnings
select @@profiling;
--enable_warnings

#   Profiling is a descriptive look into the way the server operated
#   in retrospect.  Chad doesn't think it's wise to include the result
#   log, as this creates a proscriptive specification about how the 
#   server should work in the future -- or it forces everyone who 
#   changes the server significantly to record the test results again,
#   and that violates the spirit of our tests.  Please don't include
#   execution-specific data here, as in all of the "show profile" and
#   information_schema.profiling results.

create table t1 (
  a int,
  b int
);
insert into t1 values (1,1), (2,null), (3, 4);
insert into t1 values (5,1), (6,null), (7, 4);
insert into t1 values (1,1), (2,null), (3, 4);
insert into t1 values (5,1), (6,null), (7, 4);
select max(x) from (select sum(a) as x from t1 group by b) as teeone;
insert into t1 select * from t1;
select count(*) from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
select count(*) from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
select count(*) from t1;
select sum(a) from t1;
select sum(a) from t1 group by b;
select sum(a) + sum(b) from t1 group by b;
select max(x) from (select sum(a) as x from t1 group by b) as teeone;
select '012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890' as big_string;

--enable_result_log
--disable_warnings
--replace_column 2 #
show profiles;
--enable_warnings

--disable_result_log
###--replace_column 2 # 3 # 4 #
show profile for query 15;
###--replace_column 2 # 3 # 4 #
show profile cpu for query 15;
###--replace_column 2 # 3 # 4 # 5 # 6 #
show profile cpu, block io for query 15;
###--replace_column 2 # 3 # 4 #
show profile cpu for query 9 limit 2 offset 2;
show profile cpu for query 10 limit 0;
--error 0,ER_WRONG_ARGUMENTS
show profile cpu for query 65534;
###--replace_column 2 #
show profile memory;
###--replace_column 2 # 3 # 4 #
show profile block io;
###--replace_column 2 # 3 # 4 #
show profile context switches;
###--replace_column 2 # 3 # 4 #
show profile page faults;
###--replace_column 2 # 3 # 4 #
show profile ipc;
###--replace_column 2 #
show profile swaps limit 1 offset 2;
###--replace_column 2 # 5 #
show profile source;
show profile all for query 0 limit 0;
###--replace_column 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 # 16 #
show profile all for query 15;
###--replace_column 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 # 16 #

select * from information_schema.profiling;
select query_id, state, duration from information_schema.profiling;
select query_id, sum(duration) from information_schema.profiling group by query_id;
select query_id, count(*) from information_schema.profiling group by query_id;
select sum(duration) from information_schema.profiling;

# Broken down into number of stages and duration of each query.
select query_id, count(*), sum(duration) from information_schema.profiling group by query_id;
select CPU_user, CPU_system, Context_voluntary, Context_involuntary, Block_ops_in, Block_ops_out, Messages_sent, Messages_received, Page_faults_major, Page_faults_minor, Swaps, Source_function, Source_file, Source_line from information_schema.profiling;


--enable_result_log
drop table if exists t1, t2, t3;
create table t1 (id int );
create table t2 (id int not null);
create table t3 (id int not null primary key);
insert into t1 values (1), (2), (3);
insert into t2 values (1), (2), (3);
insert into t3 values (1), (2), (3);

--disable_warnings
--replace_column 2 #
show profiles;

select * from t1;
--replace_column 2 #
show profiles;
--echo This ^^ should end in "select * from t1;"

delete from t1;
insert into t1 values (1), (2), (3);
insert into t1 values (1), (2), (3);

select * from t1;
--replace_column 2 #
show profiles;

# Turning profiling off does freeze it
set session profiling = OFF;
select sum(id) from t1;
--replace_column 2 #
show profiles;
--enable_warnings

##  Verify that the various juggling of THD contexts doesn't affect profiling.

##  Functions and procedures
--disable_warnings
set session profiling = ON;
select @@profiling;
--enable_warnings
create function f1() returns varchar(50) return 'hello';
--disable_warnings
select @@profiling;
--enable_warnings
select * from t1 where id <> f1();
--disable_warnings
select @@profiling;
--enable_warnings

--disable_warnings
set session profiling = OFF;
--enable_warnings
drop table if exists profile_log;
create table profile_log (how_many int);

--disable_warnings
drop procedure if exists p1;
drop procedure if exists p2;
drop procedure if exists p3;

delimiter //;
create procedure p1 () 
  modifies sql data 
begin 
  set profiling = ON; 
  select 'This p1 should show up in profiling'; 
  insert into profile_log select count(*) from information_schema.profiling; 
end//
create procedure p2() 
  deterministic 
begin 
  set profiling = ON; 
  call p1(); 
  select 'This p2 should show up in profiling'; 
end//
create procedure p3 () 
  reads sql data 
begin 
  set profiling = ON; 
  select 'This p3 should show up in profiling'; 
  show profile; 
end//
delimiter ;//
--enable_warnings

--disable_result_log
--echo first call to p1
call p1;
select * from profile_log;
--echo second call to p1
call p1;
select * from profile_log;
--echo third call to p1
call p1;
select * from profile_log;
set session profiling = OFF;
call p2;
set session profiling = OFF;
call p3;

--replace_column 1 # 2 #
show profiles;
--enable_result_log

drop procedure if exists p1;
drop procedure if exists p2;
drop procedure if exists p3;
drop table if exists profile_log;

##  Triggers
--disable_warnings
set session profiling = ON;
--enable_warnings
drop table if exists t2;
create table t2 (id int not null);
create trigger t2_bi before insert on t2 for each row set @x=0;
--disable_warnings
select @@profiling;
--enable_warnings
insert into t2 values (1), (2), (3);
--disable_warnings
select @@profiling;
--enable_warnings

##  ALTER TABLE
--disable_warnings
set session profiling = ON;
--enable_warnings
drop table if exists t1, t2;
create table t1 (id int not null primary key);
create table t2 (id int not null primary key, id1 int not null);
--disable_warnings
select @@profiling;
--enable_warnings
alter table t2 add foreign key (id1) references t1 (id) on delete cascade;
--disable_warnings
select @@profiling;
--enable_warnings

##  Table LOCKing
lock table t1 write; 
--disable_warnings
select @@profiling;
--enable_warnings
unlock table; 
--disable_warnings
select @@profiling;
--enable_warnings

##  Transactions
set autocommit=0;
--disable_warnings
select @@profiling, @@autocommit;
--enable_warnings
begin;
--disable_warnings
select @@profiling;
--enable_warnings
insert into t1 values (1);
insert into t2 values (1,1);
--echo testing referential integrity cascade
delete from t1 where id = 1;
--disable_warnings
select @@profiling;
--enable_warnings
--echo testing rollback
--disable_warnings
rollback;
select @@profiling;
--enable_warnings
--echo testing commit
begin;
--disable_warnings
select @@profiling;
--enable_warnings
commit;
--disable_warnings
select @@profiling;
--enable_warnings

drop table if exists t1, t2, t3;
drop view if exists v1;
drop function if exists f1;

## Multiple queries in one packet.  Combo statements don't work with ps-proto.
#--eval select 1; select 2; select 3;
## two continuations, one starting
#select state from information_schema.profiling where seq=1 order by query_id desc limit 3;

--echo End of 5.0 tests


--echo #
--echo # Bug#18483776: ASSERTION FAILED: QUERY_SOURCE == 0,
--echo #               FILE SQL_PROFILE.CC, LINE 297
--echo #

SET profiling= 1;
PREPARE s FROM 'DO 1';
EXECUTE s;
DEALLOCATE PREPARE s;


## last thing in the file
--disable_warnings
set session profiling = OFF;
set global profiling_history_size= @start_value;
--enable_warnings
##

Man Man