Active Server Pages

ASP-koulutus / kurssit v. 2008

Kurssit saatavilla kautta Suomen. Tule, tutustu ja varaa oma koulutustapahtumasi jo tänään. Kurssit järjestää IT-koulutuksen asiantuntijasi, Koulutus- ja konsultointipalvelu KK Mediat

 

ASP ja tietokannat

Tietokantayhteyden sulkeminen ja resurssien vapauttaminen

ASP:ssä, kuten missä tahansa tietokantoja hyödyntävä ohjelmointiteknologiassa resurssien oikeaoppinen käsittely on erittäin tärkeä suorituskykyyn vaikuttava tekijä. Oletusarvoisesti ASP-sovelluksissa on käytössä nk. automaattinen poolin tyhjennys/käsittely; ts. tietokantayhteydet katkeavat automaattisesti ellei niitä käytetä määräajan sisällä uudestaan, tulosjoukon varaama muisti vapautetaan määräajan puitteissa jne.

Parhaan suorituskyvyn aikaansaamiseksi on aina suositeltavaa, että web-kehittäjä ottaa sovelluksen suunnitteluvaiheessa huomioon resurssien käsittelyn ja alustaa muuttujat / komponentti-ilmentymät bittiavaruuteen välittömästi kun niitä ei tarvita. Tällä tavoin ASP:n suorituskykyä voi parantaa jopa useita kymmeniä prosentteja raskaasti liikennöidyssä sovelluksessa. Välttämätöntä resurssien hallinta ei ole, ainoastaan suositeltavaa.

Tietokantayhteyden sulkeminen tapahtuu kutsumalla Connection.Close-menetelmää ja alustamalla Connection-objektin ilmentymä arvoon Nothing. Siis:

<%
oConn.Close Set oConn = Nothing %>

Samaan tapaan myös muut sivulla käytetyt objektit / komponentti-ilmentymät tulisi vapauttaa välittömästi kun niitä ei enää tarvita. Esim. Command-objektin ja RecordSet-objektin alustus menee samalla kaavalla:

<%
Set oCommand = Nothing Set oRS = Nothing %>

Esimerkkikoodi

Ja lopuksi tässä luodun esimerkin täydellinen lähdekoodi:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Tietokantademo</title>
</head>
<body>
<%
Set oConn = Server.CreateObject("ADODB.Connection")
sConnSettings = "Provider=SQLNCLI;Server=localhost\MSSSQLEXPRESS;Initial Catalog=testi; Uid=tunnus;Pwd=sala;"
oConn.open sConnSettings

' luodaan uusi Command-objektin ilmentymä
Set oCommand = Server.CreateObject ("ADODB.Command")

' suoritettava sql kysely
oCommand.CommandText = "SELECT ti_id,ti_nimi,ti_polku FROM tiedostot WHERE ti_id < 100" 
' käytettävä yhteys - pakollinen
oCommand.ActiveConnection = oConn

' luodaan uusi tulosjoukko
Set oRS = oCommand.Execute

' vapauta resurssit
Set oCommand = Nothing

' kysely ei palauta dataa
If (oRS.EOF = True) Then
    oRS.Close 
    Set oRS = Nothing
    Response.Write "<p>Kysely ei palauttanut dataa. </p>"
Else 
%>
<table>
  <% 
' suorita silmukkaa kunnes rsFileListings palauttaa End-of-File-tiedon
Do Until oRS.EOF
%>
  <tr>
    <td><%= oRS("ti_id")%></td>
    <td><a href="<%= oRS("ti_polku")%>"><%= oRS("ti_nimi")%></a></td>
  </tr>
  <% 
  ' siirrä tulosjoukon kursori seuraavaan tietueseen 
   oRS.MoveNext 

Loop

    oRS.Close 
    Set oRS = Nothing
%>
</table>
<% 

End If

oConn.Close
Set oConn = Nothing
%>
</body>
</html>

Tutustu artikkelin muihin osiin:
»»» ASP »»» ASP ja tietokannat - yleisesittely
»»» ASP »»» ADO:n yleisesittely
»»» ASP »»» Tietokantayhteyden muodostaminen
»»» ASP »»» SQL-kyselyn suorittaminen ja tulosjoukon käsittely
»»» ASP »»» Tietokantayhteyden sulkeminen ja esimerkin lähdekoodi

Tallenna tämä sivu kirjanmerkkeihin!

 

2kmediat.com, ©2000-2008 Koulutus- ja konsultointipalvelu KK Mediat.
Tekijänoikeuksia koskeva tiedonanto | Tietosuojalausunto | Sivukartta