存储的Prc和系统变量



我目前正在监控MariaDB实例中打开的已准备语句的数量。使用命令:

显示类似"prepared_stmt_count"的状态

哪个返回变量名称值Prepared_stmt_count 27782

我想将其添加到存储的Proc中,该Proc在执行时通过变量输出值。

然而,如果我尝试像这样简单的东西

set p_out=显示类似"prepared_stmt_count"的状态

然后我得到一个sql错误。SP对我来说是一个全新的东西,所以我很挣扎。

您可以使用information_schema;

select VARIABLE_VALUE INTO @v FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME='prepared_stmt_count';

这会执行一个用户变量,但是其他存储过程变量应该是可能的。

  1. prepred_stmt_count返回正在使用的已准备语句的总数。您的应用程序真的需要保持27782条语句处于打开状态吗?如果不使用语句,则应立即关闭该语句以释放资源
  1. 当您可以使用简单的选择时,编写一个用于获取此值的存储过程是没有意义的:

SELECT VARIABLE_VALUE from INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="prepared_stmt_count"

或者如果您想将值存储在用户变量中

SELECT @p_out:= VARIABLE_VALUE ..

最新更新