|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Hårdvara
  • Allt-i - ett-skrivare
  • Apple Computers
  • BIOS
  • CD & DVD drives
  • Processorer
  • Computer Drives
  • Bildskärmar
  • Kringutrustning
  • Datorkraft Källor
  • dator Skrivare
  • Computer uppgraderingar
  • Stationära datorer
  • Elektronisk bok läsare
  • Externa hårddiskar
  • Flash Drives
  • Input & Output Devices
  • Kindle
  • Bärbara datorer
  • stordatorer
  • Möss & tangentbord
  • Netbooks
  • Network Equipment
  • Nook
  • bärbara datorer
  • Övrigt Hårdvara
  • PC Computers
  • projektorer
  • RAM , kort och moderkort
  • skannrar
  • Servrar
  • Ljudkort
  • Tablet PC
  • grafikkort
  • arbetsstationer
  • iPad
  • iPhone
  • * Dator Kunskap >> Hårdvara >> Möss & tangentbord >> Content

    Vad är markörer?

    Markörer är databasobjekt som gör att du kan komma åt och manipulera data en rad åt gången från en resultatuppsättning som returneras av en SQL -fråga. Tänk på dem som pekare som navigerar genom raderna i en resultatuppsättning.

    Här är en uppdelning av vad de är och varför de används:

    Nyckelkoncept:

    * Resultatuppsättning: En samling rader som returnerades av en SQL -fråga. När du kör ett "Select" -uttalande genererar databaseservern en resultatuppsättning.

    * Row-by-Row-bearbetning: Markörer gör det möjligt för dig att hämta och bearbeta varje rad i resultatet som ställs in individuellt. Detta i motsats till standard SQL -operationer som vanligtvis fungerar på hela resultatet på en gång.

    * pekare/iterator: En markör fungerar i huvudsak som en pekare eller iterator som håller reda på den aktuella raden. Du kan flytta markören framåt för att komma åt efterföljande rader.

    Varför använda markörer?

    Markörer används vanligtvis när du behöver utföra komplexa operationer på varje rad i en resultatuppsättning som är svåra eller omöjliga att uppnå med standard SQL -uttalanden. Vanliga scenarier inkluderar:

    * Villkorliga uppdateringar/tar bort: Du kan behöva uppdatera eller ta bort en rad baserat på värden som finns i andra rader med samma resultatuppsättning eller i andra tabeller.

    * Beräkningar baserade på tidigare rader: Du kan behöva beräkna ett totalt, rörligt medelvärde eller annat kumulativt värde som beror på värdena i föregående rader.

    * Integrering med externa system: Du kan behöva hämta data från en databas och sedan använda dessa data för att interagera med externa applikationer eller API:er, bearbeta varje rad individuellt.

    * Komplex logik inom lagrade procedurer: Markörer används ofta inom lagrade procedurer när du behöver implementera komplex affärslogik som kräver iterering genom en resultatuppsättning.

    * Rapportering: Att generera anpassade rapporter eller utföra komplex dataformatering förlitar sig ofta på rad-för-radbehandling.

    Hur markörer fungerar (förenklat):

    1. Förklara markören: Du förklarar först en markör, som anger uttalandet "Select" som kommer att generera resultatet Set som markören kommer att arbeta med.

    2. Öppna markören: Öppningen av markören kör uttalandet "Select" och skapar resultatuppsättningen. Markören är placerad före den första raden.

    3. hämta rader: Du använder ett "hämta" -uttalande för att hämta data från den aktuella raden och flytta markören till nästa rad.

    4. Process Data: Inuti en slinga bearbetar du data som hämtats från varje rad. Detta kan innebära att uppdatera andra tabeller, utföra beräkningar eller ringa externa procedurer.

    5. Stäng markören: Efter att ha bearbetat alla rader stänger du markören och släpper resurserna den använde.

    6. Dealocatera markören: Slutligen hanterar du markören.

    Exempel (konceptuell - specifik syntax varierar beroende på databas):

    `` `SQL

    - förklara en markör

    Förklara my_cursor -markören för

    Välj Employee_ID, lön från anställda där avdelningen_id =10;

    - Öppna markören

    Öppna my_cursor;

    - Hämta den första raden

    Hämta nästa från my_cursor till @emp_id, @salary;

    - slinga genom resultatuppsättningen

    Medan @@ Fetch_status =0 - Kontrollera om hämtningen var framgångsrik

    BÖRJA

    - Behandla uppgifterna (exempel:höja lönen om under en tröskel)

    Om @salary <50000

    BÖRJA

    Uppdatera anställda Ställ in lön =lön * 1.10 där anställd_id =@emp_id; - öka lönen med 10%

    AVSLUTA;

    - Hämta nästa rad

    Hämta nästa från my_cursor till @emp_id, @salary;

    AVSLUTA;

    - Stäng markören

    Stäng my_cursor;

    - Dealocate the Cursor

    Dealococate My_Cursor;

    `` `

    Viktiga överväganden och nackdelar:

    * Prestandapåverkan: Markörer kan vara betydligt långsammare än SET-baserade SQL-operationer, särskilt när de hanterar stora resultatuppsättningar. Rad-för-rad-bearbetning är i sig mindre effektiv än att bearbeta data i satser. När det är möjligt, försök att uppnå önskat resultat med standard SQL -frågor.

    * Komplexitet: Markörer kan göra din kod mer komplex och svårare att underhålla.

    * låsningsproblem: Markörer kan hålla lås på databasresurser under längre perioder, vilket potentiellt kan leda till stridighet och prestandaproblem.

    * Alternativ: Innan du tar till markörer ska du utforska alternativ som:

    * Setbaserade SQL-operationer: Ofta kan du uppnå samma resultat med en smart SQL -fråga.

    * lagrade procedurer med tillfälliga tabeller: Skapa en tillfällig tabell för att hålla mellanresultatuppsättningen och sedan utföra operationer på den tillfälliga tabellen.

    * Använda applikationskod (t.ex. Python, Java) för att behandla data: Hämta hela resultatet i din applikation och utför rad-för-radbehandlingen där. Detta kan ibland vara mer effektivt än att använda markörer.

    Sammanfattningsvis är markörerna ett kraftfullt men ofta mindre effektivt verktyg för rad-för-radbehandling i databaser. Använd dem endast när det är nödvändigt och överväg noggrant prestationskonsekvenserna. Sträva efter att använda setbaserade SQL-operationer när det är möjligt.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Vad är ett Qwert -tangentbord?
    ·Hur man bläddra med en Microsoft-mus
    ·Felsökning av en Logitech MX3200
    ·Hur är det virtuella tangentbordet relaterat till Touc…
    ·Avinstallera Korrumperade musdrivrutiner Från Windows …
    ·Vilken typ av axel är bäst för en musfälla?
    ·Hur fixar pekplatta som inte fungerar på Latitude D600…
    ·Hur man rengör en Microsoft Trackball
    ·Vad är funktionen för F1 på tangentbordet?
    ·Vad är vikten av tangentbord?
    Utvalda artiklarna
    ·Dator specs samt anslutningstyper
    ·Vad ska jag använda en hårddisk för?
    ·Hur du formaterar en sekundär eller extern hårddisk i…
    ·Vad Smart Card -format kan läsas av med en SCM Microsy…
    ·Vilken process skulle upptäcka att ett tangentbord int…
    ·Geforce 6600 PCI - E Felsökning
    ·Hur till Installera och uppdatera Chaintech BIOS
    ·Hitachi Disk Tools
    ·Rullande Problem med MacBook
    ·Hur man redigera ett skannat dokument med ett HP ScanJe…
    Copyright © Dator Kunskap https://www.dator.xyz