CFWebForge.com
 
 
   
 
Home      Service      Boeken      Artikelen      Contact     
  De praktijk  
     
   
     
  ColdFusion
Wie programmeerervaring heeft is ermee bekend: de kosten van softwareontwikkeling zit niet zo zeer in de initiƫle ontwikkeling van applicaties, maar in het onderhoud ervan.

ColdFusion levert - in vergelijk met andere web programmeertalen - op BEIDE gebieden uitzonderlijke prestaties. Meer...
 
     
  Nieuws  
     
   
     
  Artikel over SharePoint 2010 - Sitestatistieken gedropt op http://tinyurl.com/3d5f4gu  
     
  Handboek SharePoint 2010 op de 7e plaats in de * top 15 * best verkochte boeken 2011 bij Computerboek.nl  
 
     
  CFINSERT vs SQL INSERT  
 
 
     
 

<cfinsert> and <cfupdate> zijn twee ColdFusion tags waarmee je snel en gemakkelijk de inhoud van een formulier in een database tabel kunt invoegen.

Maar het zijn in hoge mate abstracte methode om data in een ODBC of een OLEDB tabel in te voegen. Van de Server vereist het veel rekentijd. Een verwerkingstechnisch snellere optie is gebruik te maken van de SQL versies UPDATE en INSERT. In dit artikel een vergelijking tussen beide...

   
CFINSERT en CFUPDATE

<cfinsert> and <cfupdate> zijn twee Cold Fusion tags waarmee je snel en gemakkelijk de inhoud van een formulier als een nieuw record in een database tabel kunt invoegen of waarmee je - zonder al te veel typwerk ! - de inhoud van een bestaande record kunt updaten.

Het zijn in hoge mate abstracte methode om data in een ODBC of een OLEDB tabel in te voegen. Van de Server vereist het echter veel rekenwerk, juist omdat het van de CF Server vraagt de juiste FORM-variabelen te koppelen aan de juiste datavelden in de database tabel.

Een verwerkingstechnisch snellere optie is gebruik te maken van de SQL versies UPDATE en INSERT. Hieronder vergelijken we beide versies en laten we het verschil in verwerkingstijd zien.

 

ColdFusion INSERT

<cfinsert> is de CF-tag waarmee je op een eenvoudige manier de inhoud van een formulier als een nieuw record in een database tabel kunt invoeren.

De code van een <cfinsert> opdracht is:

<cfinsert datasource = "[Naam van de Datasource]"
                 tablename  = "[De TabelNaam waarin data moet worden ingevoerd]"
                 formfields   = "[Een komma gescheiden lijst van FORM-variabelen]">

De gemiddelde tijd die deze opdracht in een testomgeving nodig heeft
om zijn gegevens te verwerken is: 52.55 ms.

verwerkingstijd CFINSERT

SQL INSERT

SQL INSERT is de SQL-versie om data in een tabel in te voegen. In CF is dit de tweede optie, naast <cfinsert>, om gegevens in een betaande database in te voeren.

De code van een SQL INSERT:

<cfquery datasource = "[Naam van de Datasource]">
                 INSERT INTO TABLENAME ( [Een komma gescheiden lijst van KolomNamen uit je tabel] )
                 VALUES ( [Een komma gescheiden lijst van FORM-variabelen] )
</cfquery>

De gemiddelde tijd die (met dezelfde hoeveelheid data uit CFINSERT) deze opdracht nodig heeft is: 14.32 ms

verwerkingstijd SQL INSERT


 

ColdFusion UPDATE

<cfupdate> is de CF-tag waarmee de inhoud van een bestaande record ge-update kan worden.

Voor <cfupdate> gebruik je de volgende syntax:

<cfupdate datasource = "[Naam van de Datasource]"
                   tablename  = "[De TabelNaam waarin data moet worden geupdate]"
                   formfields   = "[De Primaire sleutel van de tabel],[Een komma gescheiden lijst van FORMvariabelen]">

Gemiddelde verwerkingstijd in de testomgeving van CFUPDATE: 154.38 ms

verwerkingstijd CFUPDATE

 

SQL UPDATE

De SQL-versie van CFUPDATE is UPDATE.

De syntax:

<cfquery datasource = "[Naam van de Datasource]">
      UPDATE TABLENAME
      SET  [Column 1] = [the value of Column 1],
                [Column 2] = [the value of Column 2],
                [Column 3] = [the value of Column 3]
       WHERE ID = [The primary key from the table]
</cfquery>

Gemiddelde verwerkingstijd van SQL UPDATE: 17.45 ms

verwerkingstijd SQL UPDATE

 

Tip

Je kunt zien dat de verwerking van de SQL-versies 3-6 sneller gaan dan de respectievelijke CFINSERT-/CFUPDATE versies.

Vanwege de relatieve traagheid zouden CFINSERT en CFUPDATE in een productieomgeving eigenlijk niet gebruikt mogen worden. Daarnaast neemt, omdat je CF de ruimte laat voor onjuiste koppeling van FORM-elementen aan DATAvelden, met het gebruik van CFINSERT en CFUPDATE de kans op ongewenste fouten bij gegevensopslag toe.

Indien je je webapplicatie wilt versnellen - en de processortijd van CF Server wilt verkorten - verdient het dus aanbeveling, waar mogelijk, in plaats van CFINSERT en CFUPDATE de SQL-versies te gebruiken. Het extra typ-werk moet je er maar even voor over hebben...


 

Hieronder nog een reëel voorbeeld van een SQL UPDATE, uitgaande van een FORM:

<cfquery datasource = "VERKOOPDSN">
UPDATE AUTEURS
SET Field_1 = '#FORM.Veld1#',
         Field_2 = '#FORM.Veld2#',
         Field_3 = '#FORM.Veld3#' ',
         Field_4 = '#FORM.Veld4#',
         Field_5 = '#FORM.Veld5#',
         Field_6 = '#FORM.Veld6#',
         Field_7 = '#FORM.Veld7#',
         Field_8 = '#FORM.Veld8#'
WHERE ID=158
</cfquery>

De CFUPDATE equivalent:

<CFUPDATE DATASOURCE="VERKOOPDSN" TABLENAME="AUTEURS">

 

 
   
  copyright © Peter van der Woude