簡體   English   中英

如何在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引擎的配置元數據表。 這有點復雜。

我認為沒有辦法指定IPE_ALL_QUEUES中使用的ID,但是將它們作為SMALLINT而不是INT應該沒有任何好處。

如果要在其他位置存儲對該表的大量引用,則可以從SMALLINT類型的那些引用中受益(就減少的存儲需求而言,尤其是如果這些引用位於基於RAM的對象中)。

如果是這樣,您可以添加一個間接層,該層將SMALLINT(例如14)映射到所需的INT(例如100004)-間接表將被復制並且很小,除了IPE_ALL_QUEUES和您的大型表之外,使用它的連接成本在性能和RAM使用方面,帶有SMALLINT的表可以忽略不計。

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM