sql >> Database >  >> RDS >> Oracle

Wat zijn de manieren om BLOB-gegevens in te voegen en op te halen uit de Oracle-database met behulp van SQL?

Allereerst moet je verwachten het opslaan van BLOB's in een database is (soms een beetje, vaak aanzienlijk) langzamer, maar zeker niet sneller dan ze in een bestandssysteem op te slaan. De redenen om ze op te slaan in een DB draaien niet om prestaties, maar om bijvoorbeeld:

  • Onbeschikbaarheid van een (gedeeld) bestandssysteem in een geclusterd of load-balanced scenario
  • Gemak van back-up:één proces, oa. 2 processen wanneer bestanden en DB worden gebruikt
  • Transactieveiligheid:een BLOB is er en compleet of niet, maar niet in een halfbakken stadium
  • andere die ik nu niet kan bedenken.

De algemene vuistregel is dat als geen van deze zaken u aanbelangt, u uw bestanden moet opslaan als ... bestanden. Het opslaan van de metadata en padnaam in een DB is IMHO een goede en gangbare praktijk.

Betreffende Oracle tuning:daar zijn boeken over geschreven. Ik vermoed dat ze in totaal meer dan een ton bedragen in dode boom-paperback-formaat. Je zou allereerst kunnen kijken naar het geheugenverbruik van het Oracle-proces - vuistregel:als het minder dan een gig is en je BLOB's gebruikt, heb je een probleem. Lees meer over de verschillende geheugenpools en hoe u deze kunt vergroten. Sommige limieten voor de express-editie kunnen van toepassing zijn.



  1. Problemen met RODBC sqlSave

  2. Hoe rijen uit een json-array te extraheren met behulp van de mysql udf json_extract 0.4.0?

  3. SQL:selecteer Top 3 records + som van hoeveelheid

  4. het isoleren van een subtekenreeks in een tekenreeks vóór een symbool in SQL Server 2008