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!