标签: event

每天在给定时间安排活动

我希望我的活动每天在 00:20 运行。我对时间安排感到困惑。我应该使用第一个选项还是第二个选项?

选项1

CREATE EVENT my_event
  ON SCHEDULE
    EVERY 1 DAY
    STARTS '2014-04-30 00:20:00' ON COMPLETION PRESERVE ENABLE 
  DO
    # My query
Run Code Online (Sandbox Code Playgroud)

选项 2

CREATE EVENT my_event
  ON SCHEDULE
    AT ('2014-04-30 00:20:00'+ INTERVAL 1 DAY) ON COMPLETION PRESERVE ENABLE 
  DO
    # My query
Run Code Online (Sandbox Code Playgroud)

mysql event

13
推荐指数
1
解决办法
5万
查看次数

在 MySql 中记录/记录事件历史记录的位置?

我只是设置了一些存储过程以使用 CREATE EVENT 在事件调度程序中运行。

我试图找到它运行的历史存储在哪里(如果在某个地方)。我查看了文档,但找不到任何内容。

是否有一些表格或日志可以让我看到我的预定事件已成功运行?

mysql jobs event

8
推荐指数
1
解决办法
2万
查看次数

如何在 MySQL 中永久打开事件调度程序?

如何永久打开 mysqld 中的事件调度程序?我正在使用 phpMyAdmin,我已经安排了一个事件,每天在特定时间将记录从一个表复制到另一个表,但记录并不是每天都被复制。我试过设置事件调度程序。

SET GLOBAL event_scheduler="ON"; 
Run Code Online (Sandbox Code Playgroud)

当我重新启动我的电脑时,事件调度程序被关闭。如何使它始终打开,并且在重新启动 mysqld 时不关闭?

mysql phpmyadmin mysql-5.5 event

6
推荐指数
1
解决办法
3万
查看次数

扩展事件 - 缓慢的查询和等待

我有一个扩展事件可以过滤我的慢速查询。我为其创建了以下脚本。

CREATE EVENT SESSION [SlowQueriesAndStatementsLargerThan3Seconds] ON SERVER 
ADD EVENT sqlserver.rpc_completed(SET collect_statement=(1)
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.nt_username,sqlserver.session_id,sqlserver.session_nt_username,sqlserver.sql_text,sqlserver.username)
    WHERE ([duration]>=(3000000))),
ADD EVENT sqlserver.sp_statement_completed(
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.client_pid,sqlserver.database_name,sqlserver.nt_username,sqlserver.server_principal_name,sqlserver.session_id)
    WHERE ([duration]>=(3000000))),
ADD EVENT sqlserver.sql_batch_completed(
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.nt_username,sqlserver.session_id,sqlserver.session_nt_username,sqlserver.sql_text,sqlserver.username)
    WHERE ([duration]>=(3000000)))
ADD TARGET package0.event_file(SET filename=N'SlowQueriesAndStatementsLargerThan3Seconds'),
ADD TARGET package0.ring_buffer
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=ON,STARTUP_STATE=ON)
GO
Run Code Online (Sandbox Code Playgroud)

我想包括我的查询在速度缓慢时正在等待的位置。我想包含它的 wait_info ,但是当我添加它时,我的跟踪充满了与其他查询无关的等待。为了跟踪等待情况,我添加了以下事件:

    CREATE EVENT SESSION [SlowQueriesAndStatementsLargerThan3Seconds] ON SERVER 
ADD EVENT sqlos.wait_info(
    ACTION(sqlos.task_elapsed_quantum,sqlos.task_time,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.session_id,sqlserver.sql_text)
    WHERE ([opcode]='End')),
ADD EVENT sqlserver.rpc_completed(SET collect_statement=(1)
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.nt_username,sqlserver.session_id,sqlserver.session_nt_username,sqlserver.sql_text,sqlserver.username)
    WHERE ([duration]>=(3000000))),
ADD EVENT sqlserver.sp_statement_completed(
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.client_pid,sqlserver.database_name,sqlserver.nt_username,sqlserver.server_principal_name,sqlserver.session_id)
    WHERE ([duration]>=(3000000))),
ADD EVENT sqlserver.sql_batch_completed(
    ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id,sqlserver.database_name,sqlserver.nt_username,sqlserver.session_id,sqlserver.session_nt_username,sqlserver.sql_text,sqlserver.username)
    WHERE ([duration]>=(3000000)))
ADD TARGET package0.event_file(SET filename=N'SlowQueriesAndStatementsLargerThan3Seconds'),
ADD TARGET package0.ring_buffer …
Run Code Online (Sandbox Code Playgroud)

sql-server event waits

4
推荐指数
1
解决办法
1094
查看次数

在 mysql 中 24 小时后自动更新列

我有一个带有列的表 T1:

Name      State             time
mon         1          2014-01-09 11:23:00
tue         0          2014-01-07 14:40:00
wed         2          2014-01-08 09:23:00 
thu         0          2014-01-09 12:23:00   
Run Code Online (Sandbox Code Playgroud)

现在我想安排一个事件或开发一个触发器(如果可能),如果任何状态为 0/2 并且其时间距当前时间超过 24 小时,则应将其更新为 1。

例如在上表中, Tue 的 state 是 0 并且 time 超过 24 hours ,所以 state 应该更新为 1 并且同样适用于 wed ,但不适用于 thu 。

我经历了很多问题,例如:

/sf/ask/1217146171/

/sf/ask/869522951/

但我还没明白,如何解决我的问题

mysql trigger stored-procedures mysql-5.5 event

3
推荐指数
1
解决办法
3万
查看次数

一次(保证)更改后索引对“状态”字段的影响

介绍

我有一个 PostgreSQL 表设置作为队列/事件源。

我非常希望保留事件的“顺序”(即使在处理队列项之后)作为 e2e 测试的来源。

我开始遇到查询性能下降的问题(可能是因为表膨胀),并且我不知道如何有效地查询不断变化的键上的表。

初始设置

Postgres:v15

表DDL

CREATE TABLE eventsource.events (
    id serial4 NOT NULL,
    message jsonb NOT NULL,
    status varchar(50) NOT NULL,
    createdOn timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT events_pkey PRIMARY KEY (id)
);
CREATE INDEX ON eventsource.events (createdOn)
Run Code Online (Sandbox Code Playgroud)

抓取查询(伪代码)

BEGIN;  -- Start transaction

SELECT message, status
FROM eventsource.events ee
WHERE status = 'PENDING'
ORDER BY ee.createdOn ASC
FOR UPDATE SKIP LOCKED
LIMIT 10;  -- Get the OLDEST 10 events that are pending
-- I …
Run Code Online (Sandbox Code Playgroud)

postgresql index queue event query-performance

3
推荐指数
1
解决办法
502
查看次数