Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Databasåtkomstklasser

Postades av 2005-04-05 13:30:35 - Jonas Oscarsson, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 458 personer

Hej,

Jag använder VB .NET för att skriva databasåtkomstsklasser till mina webbapplikationer. Dessa klasser gör sedan vidare utveckling och optimisering betydligt enklare. Vad jag däremot funderar på är om det inte vore smidigare att köra vissa datahämtningar via SQL istället för via flera klasser? Hur mycket prestandaskillnad blir det på att öppna en anslutning och skicka med en lite mer komplicerad SQL-sträng mot att öppna två anslutningar (inte samtidigt) där jag skickar lite enklare SQL-strängar?

Ett exempel:

Private Function LoadCustomer(ByVal ProjectID As Integer) As String
   Dim aProject As New DALProjects(ProjectID) 'Laddar projektet
   Dim aCustomer As New DALCustomers(aProject.CustomerID) 'Laddar kunden utifrån projektets KundID

   Return aCustomer.Name 'Returnerar den laddade kundens namn
End Function


Koden ovan kör alltså totalt två frågor för att hämta kundnamn för ett projekt. Ger det då inte bättre prestanda att skicka EN SQL-sträng enligt nedan? Hur skulle man hantera detta i databasåtkomstklasser?

    SQL = "SELECT kund.Kundnamn FROM Kunder AS kund, Projekt AS proj WHERE proj.KundID = kund.ID 
AND proj.ID = <mittmedskickadeID>"


Tack på förhand!


Svara

Sv: Databasåtkomstklasser

Postades av 2005-04-05 13:37:06 - Patrik Löwendahl

Varför inte skapa en metod som hämtar kunden bara:


  Dim cust As Customer = DAL.GetCusomerForProject(projectId);



och använd join i sqln:

<code>
sql = " SELECT kund.* From Kunder inner join Projekt on project.kund_id = kunder.kund_id where project.id = @projid"
</code>


Svara

Sv:Databasåtkomstklasser

Postades av 2005-04-05 21:41:22 - Pelle Johansson

Håller med Patrik där.

Dock skulle jag rekommendera dig att köra lagrade procedurer istället för ren sql. Dels för prestanda men även för lättare felsökning. Just nu innehåller pellesofts databas 655 lagrade procedurer :-)

Sen är det ju i snitt 41 anrop/sekund till databasen också..


Svara

Sv:Databasåtkomstklasser

Postades av 2005-04-07 18:56:07 - Jonas Oscarsson

Hur menar du att du instansierar Customer?

Jag laddar en kund direkt från databasen när jag skriver


Dim cust As New Customer(ID)



Om jag då ska sätta en likamed måste jag först ladda vilken kund projektet har, och sedan ladda kundens data, vilket totalt blir två anslutningar mot databasen.

Hur mycket prestandaskillnad gör två anslutningar gentemot en?

Dessvärre använder jag Access som databas, vilket gör att jag inte kan använda mig av Stored Procedures. Annars hade det givetvis varit att föredra framför ren SQL. Jag använder dock paramteriserade SQL-strängar.


Svara

Sv: Databasåtkomstklasser

Postades av 2005-04-08 09:24:27 - Ola Lindfeldt

Hej,

Njae, det är nog tänkt som att du i det här fallet inte skapar ett Customer-objekt alls.
Utan i Project inkluderar du kundnamn om du bara ska ha med kundnamn när du hämtar ett projekt.

Då inkluderar du kundnamnet eller en instans kundklassen i Project och hämtar båda sakerna med SQL Join.

Det blir att gå ifrån teoretisk objektorientering en aning, men ngt bättre prestanda blir det med bara en roundtrip till databasen. Det gäller i synnerhet om databasen finns på en annan fysisk dator.

I det här fallet är det nog ingen fara, du har en Access-databas, förmodligen på samma server?
Då blir det ju inte speciellt mycket overhead i din roundtrip.

Dessutom har du connection-pooling inbyggt i ADO.NET (i gamla ADO också). Det funkar så att ditt connection objekt läggs i en Object pool i COM+ ihop med några fler instanser av samma koppling.
Vid nästa request kommer en connection att hämtas från poolen i första hand. Och det går väldigt snabbt. Dvs i ditt exempel så kommer du med all sannolikhet att använda SAMMA fysiska connection vid två anrop på raken, och det kostar inte så mycket som man kan tro då.


Svara

Sv:Databasåtkomstklasser

Postades av 2005-04-10 21:56:12 - Jonas Oscarsson

Okej, tack för informationen.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
5 899
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies