INSTANCEOF 演算子を利用してCMDB_CIクエリを改善します。Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 概要 CMDB CI に関連する速度低下のトラブルシューティングを行う場合、CMDB 階層の性質上、クエリが非常に複雑な場合があります。 の画像については、このリンクをクリックします CMDB 階層構成アイテムの選択を返そうとすると、クエリが過度に複雑になり、時間がかかる場合があります。 階層から選択する場合、プラットフォーム内の INSTANCEOF 演算子などのツールを使用して、CI 間のクラス関係を有利に利用してCMDB_CIから効率的に選択できます。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } INSTANCEOF 演算子 INSTANCEOF 演算子は、クラスのインスタンスを計算するすべてのロジックを処理します。言い換えれば、INSTANCEOF演算子は、渡したクラスのすべての項目とそのクラスの子を取得します。構成アイテムのテーブルから選択する場合、1つまたは2つのクラスを除外する方が効率的なクラスのすべてのアイテムまたは多数のサブクラスを取得する場合があります。 たとえば、CMDB内のすべてのコンピューターを返す場合は、クラス cmdb_ci_computer のすべての項目を返すクエリを記述できますが、項目 cmdb_ci_win_server を取得し、 cmdb_ci_server 、 cmdb_ci_unix_server なども取得する必要があります。このため、cmdb_ci テーブルに対してクエリを構成するときには、階層を理解することが重要です。階層を理解していれば、前述のすべてのクラスが cmdb_ci_computerの子であることがわかります。 例文 参照修飾子は、この種の遅いクエリや複雑なクエリーをよく見る場所です。 以下は簡単な例ですが、修飾子、リストビュー、または Glide レコードにクラスを追加すると、生成されるクエリが影響を受ける可能性があることを理解してください。 u_active=true^sys_class_name=cmdb_ci_acc^ORsys_class_name=cmdb_ci_computer^ORsys_class_name=cmdb_ci_server^ORsys_class_name=cmdb_ci_win_server^ORsys_class_name=cmdb_ci_unix_server^ORsys_class_name=cmdb_ci_linux_server^ORsys_class_name=cmdb_ci_appl^ORsys_class_name=cmdb_ci_netgear 上記のようなOR句が多いと、データベースが適切なインデックスを選択したり、インデックスを適切に使用したりすることができなくなり、クエリが遅くなる可能性があるため、この修飾子を改善する必要があります。CMDB 階層を理解すると、次のアイテムはすべて cmdb_ci_computer クラスの子孫であることがわかります。または表示するには、 cmdb_ci_computer <---親 cmdb_ci_server <---子cmdb_ci_win_server <---子cmdb_ci_unix_server <---子cmdb_ci_linux_server <---子 「cmdb_ci_server」というsys_class_nameを使用するコンピュータや「cmdb_ci_win_server」を使用するコンピュータが実際に存在している可能性があるため、sys_class_name cmdb_ci_computerを使用することはできませんが、ここでINSTANCEOF演算子が非常に役立ちます。上記の参照修飾子を次のように変更できます。 u_active=true^sys_class_name=cmdb_ci_acc^ORsys_class_nameINSTANCEOFcmdb_ci_computer^ORsys_class_name=cmdb_ci_appl^ORsys_class_name=cmdb_ci_netgear 同じ結果を返すために、4つのOR句を削除することができました。 リストビュー リストビューを使用して項目を選択する場合は、「Class 'is a'」を使用して、INSTANCEOF 演算子と同じ結果を返すことができます。 階層の表示またはクラスの検索 CI クラスがどのように関連しているかわからない場合、またはsys_class_nameを特定する必要がある場合は、インスタンス内で次の場所に移動できます。 構成:CI クラスマネージャー>、左上の [階層] を選択します。 表示されるパネルで CI 階層を確認できます。 クラスを選択すると、[基本情報] の下に、コードで使用できるクラスであるテーブル名が表示されます。