如何更改 WX2 中的队列 ID?
How to change the Queue Id in WX2?
以下是 QUEUES 中的当前记录。
SELECT * FROM SYS.IPE_ALLQUEUES;
ID NAME
------- ----------
100004 NAGIOS
1 DEFAULT
100003 OTHER
100002 APP
100001 ANALYST
0 NONQUEUED
ID 列当前定义为 INTEGER,我们计划将其更改为 SMALLINT。所以我需要按如下方式更改 id
SELECT * FROM SYS.IPE_ALLQUEUES;
ID NAME
------- ----------
14 NAGIOS
1 DEFAULT
13 OTHER
12 APP
11 ANALYST
0 NONQUEUED
如何在 WX2 中实现这一点?
注意:我不是在询问关于 ID 的简单更新,因为这是 WX2 引擎的配置元数据 table。这有点复杂。
我认为没有办法指定 IPE_ALL_QUEUES 中使用的 ID,但使用 SMALLINT 而不是 INT 应该没有任何好处。
如果您在别处存储大量对此 table 的引用,您会发现这些引用类型为 SMALLINT 的好处(就减少存储要求而言,特别是如果引用位于基于 RAM 的对象)。
如果是这样,您可以添加一个间接层,将 SMALLINT(例如 14)映射到所需的 INT(例如 100004)- 间接 table 将被复制并且很小,加入的成本除了 IPE_ALL_QUEUES 和你的大 table 与 SMALLINT 一起使用它在性能和 RAM 使用方面可以忽略不计。
CREATE TABLE largeref(qref SMALLINT, ...);
CREATE TABLE reflookup(qref SMALLINT, queue_id INT);
-- populate lookup with entries like (14, 100004)
-- populate largeref with SMALLINT references
-- replicate reflookup
SELECT Q.NAME, ...
FROM ipe_allqueues q, reflookup r, largeref l
WHERE q.id = r.queue_id
AND r.qref = l.qref
AND <other predicates on e.g. largeref>
以下是 QUEUES 中的当前记录。
SELECT * FROM SYS.IPE_ALLQUEUES;
ID NAME
------- ----------
100004 NAGIOS
1 DEFAULT
100003 OTHER
100002 APP
100001 ANALYST
0 NONQUEUED
ID 列当前定义为 INTEGER,我们计划将其更改为 SMALLINT。所以我需要按如下方式更改 id
SELECT * FROM SYS.IPE_ALLQUEUES;
ID NAME
------- ----------
14 NAGIOS
1 DEFAULT
13 OTHER
12 APP
11 ANALYST
0 NONQUEUED
如何在 WX2 中实现这一点?
注意:我不是在询问关于 ID 的简单更新,因为这是 WX2 引擎的配置元数据 table。这有点复杂。
我认为没有办法指定 IPE_ALL_QUEUES 中使用的 ID,但使用 SMALLINT 而不是 INT 应该没有任何好处。
如果您在别处存储大量对此 table 的引用,您会发现这些引用类型为 SMALLINT 的好处(就减少存储要求而言,特别是如果引用位于基于 RAM 的对象)。
如果是这样,您可以添加一个间接层,将 SMALLINT(例如 14)映射到所需的 INT(例如 100004)- 间接 table 将被复制并且很小,加入的成本除了 IPE_ALL_QUEUES 和你的大 table 与 SMALLINT 一起使用它在性能和 RAM 使用方面可以忽略不计。
CREATE TABLE largeref(qref SMALLINT, ...);
CREATE TABLE reflookup(qref SMALLINT, queue_id INT);
-- populate lookup with entries like (14, 100004)
-- populate largeref with SMALLINT references
-- replicate reflookup
SELECT Q.NAME, ...
FROM ipe_allqueues q, reflookup r, largeref l
WHERE q.id = r.queue_id
AND r.qref = l.qref
AND <other predicates on e.g. largeref>