如何用查询分析器在数据库下执行SQL语句?

如何用查询分析器在数据库下执行SQL语句?,第1张

打开查询分析器,

use 你要查找的数据库名

写入你要执行的SQL 语句,比如

select * from 数据库表

delete from 数据库表 where tiaojian

选中你要执行的那一个SQL语句,按F5即可,

当然,创建存储过程,函数等等,都可以采用这样的方法,只是把SQL改成你需要的样子即可

SQL 语句摘要可以用在MySQL的各个方面,比如 性能字典里对语句的分析,查询重写插件规则改写等等。

接下来依次看下语句摘要在这两方面的使用。

1. 性能字典

mysql>call sys.ps_setup_enable_consumer('statements')

+---------------------+

| summary |

+---------------------+

| Enabled 4 consumers |

+---------------------+

1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

开启后,执行几次之前的几条 SQL。

完后可以很方便的从 sys 库里分析这类语句的执行情况,包括执行次数,执行时间,扫描的记录数,锁定的时间,是否用到排序等等。

2. 查询重写插件

比如要阻止对表 p1 通过字段 r1 的删除动作,可以用查询重写插件在 MySQL 语句分析层直接转换,这时候就得用到摘要函数 statement_digest_text。

假设:表 p1 字段 id 值全部为正。

delete from p1 where id = 1000

要改写为,

delete from p1 where id = -1

利用函数 statement_digest_text 来定制这条 SQL 的重写规则。

mysql>INSERT INTO query_rewrite.rewrite_rules (pattern, replacement,pattern_database) ->VALUES( ->statement_digest_text('delete from p1 where id = 1000') , ->statement_digest_text('delete from p1 where id = -1'), ->'ytt' ->)Query OK, 1 row affected (0.01 sec)

语句被查询重写后的效果:

mysql>delete from p1 where id = 20000Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>show warnings\G*************************** 1. row *************************** Level: Note Code: 1105Message: Query 'delete from p1 where id = 20000' rewritten to 'DELETE FROM `p1` WHERE `id` = - 20000' by a query rewrite plugin1 row in set (0.00 sec)mysql>select count(*) from p1+----------+| count(*) |+----------+| 9000001 |+----------+1 row in set (1.59 sec)

总结

MySQL 8.0 新增的语句摘要函数可以很方便的分析 SQL 语句执行的各个方面,比以前分析类似的场景要简单的多。

呵呵,这个使用sp_attach_db

存储过程就可以了,具体的SQL语句如下:

EXEC

sp_attach_db

@dbname

=

N'test',

@filename1

=

N'd:\test_data.mdf',

@filename2

=

N'd:\\test_log.ldf'

go

呵呵,希望能有帮助,^_^


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6767899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存