SYSLIB.SparseMapAMPs関数を使用して、スパース マップ内の特定のテーブルがどのAMPに含まれるかを検索します。
WITH dt1 (DatabaseName, ObjectName, ObjectKind, MapSlot, NumberOfPrimaryAMPs, ColocationName) AS (SELECT DatabaseName, TableName, TableKind, MapSlot, NumberOfAMPs, ColocationName FROM DBC.TablesV t, DBC.Maps m WHERE ColocationName IS NOT NULL AND t.MapName = m.MapName) SELECT AmpNo, PF, CAST(DbName AS CHAR(5)), CAST(ObjName AS CHAR(5)) FROM TABLE (SparseMapAMPs(dt1.DatabaseName, dt1.ObjectName, dt1.ObjectKind, dt1.MapSlot, dt1.NumberOfPrimaryAMPs, dt1.ColocationName)) dt ORDER BY 1; AmpNo PF DbName ObjName ------ -- ------ ------- 0 P db1 tabs2 7 P db1 tabs1 24 F db1 tabs2 31 F db1 tabs1 72 F db1 tabs2 96 P db1 tabs2 WITH dt1 (DatabaseName, ObjectName, ObjectKind, MapSlot, NumberOfPrimaryAMPs, ColocationName) AS (SELECT DatabaseName, TableName, TableKind, MapSlot, NumberOfAMPs, ColocationName FROM DBC.TablesV t, DBC.Maps m WHERE ColocationName IS NOT NULL AND t.MapName = m.MapName) SELECT CAST(DbName AS CHAR(12)), CAST(ObjName AS CHAR(12)), AmpNo, PF FROM TABLE (SparseMapAMPs(dt1.DatabaseName, dt1.ObjectName, dt1.ObjectKind, dt1.MapSlot, dt1.NumberOfPrimaryAMPs, dt1.ColocationName)) dt ORDER BY 1,2; DbName ObjName AmpNo PF ------------ ------------ ------ -- db1 tabs1 7 P db1 tabs1 31 F db1 tabs2 0 P db1 tabs2 24 F db1 tabs2 72 F db1 tabs2 96 P