sql >> Databasteknik >  >> RDS >> Oracle

Skillnad mellan tabellfunktion och rörledningsfunktion?

Pipelined funktioner, ett mycket klassiskt exempel är där du gör ett SELECT * FROM table name i SQL*Plus . Vad som händer är att Oracle strömmar data från tabellen...

Som att titta på en video på YouTube.

Vänligen notera ordet 'Streaming '.. Och i vår funktion definierar vi hur många rader vi streamar.. Varje streamad raden är omedelbart tillgänglig för den som ringer. Pipelining betyder i lekmannatermer, låt mig inte vänta tills du är klar, ge mig vad du än har och fortsätt att bearbeta och uppdatera mig samtidigt.

I din senaste procedur, efter att ha pippat varje rad, initierar du en sleep ring för 10s , så posten är Streamad till den som ringer var 10:e:e.

Och en normal tabellfunktion kommer att fortsätta att vänta tills allt bearbetningsarbete är klart, och sedan returnerar den referensen till resultatuppsättningsmarkören.

pipelined-funktioner, de hävdar att de sparar minne, är genom flushing innehållet omedelbart, och därför är bufferten som används alltid minimal, medan antalet tur och retur blir högre.




  1. Hur använder jag korrekt CASE..WHEN i MySQL

  2. En översikt över PostgreSQL Query Caching &Load Balancing

  3. Installera Microsoft SQL Server JDBC-drivrutiner i Pentaho Data Integration och BA Server-verktyg

  4. RODBC odbcDriverConnect() Anslutningsfel