Postgres 9.4 jsonb Array als Tabelle

Ich habe ein JSON-Array mit ungefähr 1000 Elementen der Struktur "oid: aaa, instance: bbb, value: ccc".

{"_id": 37637070
, "data": [{"oid": "11.5.15.1.4", "value": "1", "instance": "1.1.4"}
         , {"oid": "11.5.15.1.9", "value": "17", "instance": "1.1.4"}
         , {"oid": "12.5.15.1.5", "value": "0.0.0.0", "instance": "0"}]}

oid undinstance sind pro json-Array eindeutig. Wenn ich die Möglichkeit hätte, die Struktur zu ändern, hätte ich das Format in @ geänderSchlüsselwer:

{"11.5.15.1.4-1.1.4":"1", "11.5.15.1.9-1.1.4": "17", "12.5.15.1.5-0": "0.0.0.0"}

Allerdings, wenn ich mit der alten Struktur bleiben muss

Was ist der schnellste Weg, um ein bestimmtes @ zu bekommoid aus dem Array?

Was ist der schnellste Weg, um eine Tabelle mit 3 Spalten von @ zu erhaltoid, instance undvalue. Oder noch besser eine Pivot-Tabelle mit der Instanz oid + als Spaltenüberschrift.

Für 2. Ich habe Folgendes versucht, aber es war auf einem großen Tisch ziemlich langsam:

select *
from (
   select a->>'oid' oid, a->>'instance' instance, a->>'value' value1, id
   from (
      select jsonb_array_elements(config#>'{data}')  a, id
      from configuration
      ) b
   ) c
where  oid = '1.3.6.1.4.1.7352.3.10.2.5.35.3' and instance = '0' and value1 <> '1';

Antworten auf die Frage(2)

Ihre Antwort auf die Frage