利用資料庫儲存過程統計資料庫的訪問量

2022-06-25 21:36:13 字數 3909 閱讀 2880

1.新建訪問量資訊表

##建立表checkdbstatus

create table `tbcheckdbstatus` (

`check_id`

int(10) unsigned not null auto_increment,

`time` datetime not null default '0000-00-00 00:00:00',

`com_select`

int(10) unsigned default null,

`com_insert`

int(10) unsigned default null,

`com_update`

int(10) unsigned default null,

`com_delete`

int(10) unsigned default null,

primary key (`check_id`)

) engine=myisam default charset=latin1;

2.新建儲存過程

--建立乙個儲存過來用來監控mysql的select、insert、update、delete使用情況。

## 建立儲存過程pcheckdbstatus1()

drop procedure

ifexists pcheckdbstatus1;

delimiter

//create procedure pcheckdbstatus1()

begin

select @com_delete:=variable_value from information_schema.global_status where variable_name='com_delete';

select @com_insert:=variable_value from information_schema.global_status where variable_name='com_insert';

select @com_select:=variable_value from information_schema.global_status where variable_name='com_select';

select @com_update:=variable_value from information_schema.global_status where variable_name='com_update';

select sleep(1);

select @com_delete1:=variable_value from information_schema.global_status where variable_name='com_delete';

select @com_insert1:=variable_value from information_schema.global_status where variable_name='com_insert';

select @com_select1:=variable_value from information_schema.global_status where variable_name='com_select';

select @com_update1:=variable_value from information_schema.global_status where variable_name='com_update';

insert into tbcheckdbstatus values (null,now(), @com_select1-@com_select,@com_insert1-@com_insert,@com_update1-@com_update,@com_delete1-@com_delete );

end;

//delimiter ;

3.建立定時任務執行儲存過程

--mysql相容問題處理

-- show variables like '%show_compatibility_56%';

-- set global show_compatibility_56=on;

-- 設定group_concategroup_concat

-- set global group_concat_max_len=102400;

-- set session group_concat_max_len=102400;

--查詢定時任務是否開啟

-- show variables like '%sche%';

-- set global event_scheduler=1;

--定時任務 每隔59秒執行一次

create event

ifnot exists e_test

on schedule every 59second

on completion preserve

do call pcheckdbstatus1();

4.資料定時清理

## 建立儲存過程pcleardbstatus1

drop procedure

ifexists pcleardbstatus1;

delimiter

//create procedure pcleardbstatus1()

begin

delete from tbcheckdbstatus where unix_timestamp(now())-unix_timestamp(time)>86400;

end;

//delimiter ;

--定時任務 每天執行一次

create event

ifnot exists e_test2

on schedule every 1 day starts '2021-03-11 17:30:00'on completion preserve

do call pcleardbstatus1();

5. 相關知識

-- 查詢資料庫增刪改查次數

show   global status where variable_name in('com_select','com_insert','com_delete','com_update')  ;

--查詢所有的儲存過程:

select name from mysql.proc where db='資料庫名';

--查詢某個儲存過程:

show create procedure 儲存過程名;

-- 查詢事件(定時任務)

select * from information_schema.events;

-- 臨時關閉事件(定時任務)
alter event e_test disable;

-- 開啟事件(定時任務)

alter event e_test enable;

-- 刪除事件(定時任務)

drop event [if exists] event_name

例:drop event e_test;

資料庫定時任務配置

--查詢資料庫是否開啟定時任務

show variables like '%event_scheduler%';

--開啟定時任務

--語句方式(當前啟動的例項有效,重啟後無效)

set global event_scheduler=1;

--或配置my.cnf(windows下是my.ini)下新增如下選項(重啟後有效)

[mysqld]

event_scheduler=on

參考資料  儲存過程 、定時任務

2 0中獲取資料庫連線統計資料

import namespace system.data import namespace system.data.sqlclient page language c script runat server void page load object sender,eventargs e scrip...

資料庫 儲存過程

儲存過程,stored procedure,是在大型資料庫系統中,一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。模擬於c中的函式。mysql與sqlserver是不同的。建立儲存過程 conn getconnec...

資料庫 儲存過程

在資料庫中,儲存過程屬於一種物件,是一種高效的安全的訪問資料庫的方法。下邊我們就資料庫中的儲存過程總結它的相關知識點。我們分為概述,實現和管理三個方面來總結。一,儲存過程的概述 1,概念 儲存過程 storedprocedure 是在資料庫伺服器端執行的一組t sql語句的集合,經編譯後存放在資料庫...