sql >> Databasteknik >  >> RDS >> Oracle

Lokal tillfällig tabell i Oracle 10 (för omfattningen av lagrad procedur)

Du säger att du är ny på Oracle. Jag gissar att du är van vid SQL Server, där det är ganska vanligt att använda temporära tabeller. Oracle fungerar annorlunda så det är mindre vanligt eftersom det är mindre nödvändigt.

Tänk på att användning av en tillfällig tabell medför följande omkostnader:

  1. läs data för att fylla i temporär tabell
  2. skriv temporär tabelldata till filen
  3. läs data från den tillfälliga tabellen när din process startar
Det mesta av den aktiviteten är värdelös när det gäller att hjälpa dig att få saker gjorda. En bättre idé är att se om du kan göra allt i en enda åtgärd, helst ren SQL.

För övrigt väcker ditt omnämnande av anslutningspooling en annan fråga. En process som mumlar stora mängder data är inte en bra kandidat för att köra i ett OLTP-läge. Du borde verkligen överväga att initiera en bakgrundsprocess (d.v.s. asynkron), förmodligen ett databasjobb, för att köra din lagrade procedur. Detta gäller särskilt om du vill köra det här jobbet regelbundet, eftersom vi kan använda DBMS_SCHEDULER för att automatisera hanteringen av sådana saker.



  1. Neo4j Query Language - Cypher

  2. Databasmodellering

  3. Oändlig loop CTE med OPTION (maxrekursion 0)

  4. Förbättra prestandan för UDF:er med NULL ON NULL INPUT