|
| retuner oplysninger om skærmopløsningen - ~ Fra : Pelle |
Dato : 06-04-01 13:58 |
|
Hejsa ...NG
Jeg er ved at lave en lille statestik / tæller modul i ASP - jeg ved at man
vha.
Request.ServerVariables("URL") kan få retuneret hvilken adresse brugeren
kommer fra.
1. Findes der en ligende Request.ServerVariable som retunere
skærmopløsningen brugeren benytter ?
- Evt. en adresse hvor man kan læse mere om Request.ServerVariablerne.
2 .Endelig, hvordan kan man retunere tidsforbruget serveren har brugt til at
lave et opslag i en given
ASP/Database - noget i retning af: Denne søgning blev genereret på xx
ms.
Takker på forhånd
Peter Jensen
| |
Jesper Stocholm (06-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 06-04-01 14:18 |
|
"Pelle" <mail@icedesign.dk> wrote in message
news:9akel0$cir$1@news.inet.tele.dk...
> Hejsa ...NG
>
> Jeg er ved at lave en lille statestik / tæller modul i ASP - jeg ved at
man
> vha.
> Request.ServerVariables("URL") kan få retuneret hvilken adresse brugeren
> kommer fra.
>
> 1. Findes der en ligende Request.ServerVariable som retunere
> skærmopløsningen brugeren benytter ?
jeg mener, at du skal have fat i noget klient-script for at kunne dette.
> - Evt. en adresse hvor man kan læse mere om Request.ServerVariablerne.
>
jeg har selv haft meget nytte af http://dalsgaard.webhostme.com .
> 2 .Endelig, hvordan kan man retunere tidsforbruget serveren har brugt til
at
> lave et opslag i en given
> ASP/Database - noget i retning af: Denne søgning blev genereret på
xx
> ms.
>
det kommer vist an på, hvilken database du arbejder med. Jeg har aldrig hørt
om, at fx MS Access skulle opgive dette - men er til gengæld sikker på, at
du kan trække det ud, hvis du arbejder med MS SQL Svr. Jeg kunne selv godt
tænke mig at kunne dette - men ved desværre ikke hvordan.
Jesper
| |
Kim Søvø Pedersen (06-04-2001)
| Kommentar Fra : Kim Søvø Pedersen |
Dato : 06-04-01 15:21 |
|
> det kommer vist an på, hvilken database du arbejder med. Jeg har aldrig
hørt
> om, at fx MS Access skulle opgive dette - men er til gengæld sikker på, at
> du kan trække det ud, hvis du arbejder med MS SQL Svr. Jeg kunne selv godt
> tænke mig at kunne dette - men ved desværre ikke hvordan.
>
I kan lave en lille timer-anordning, og eksperimentere med hvor i kan
placere den for at få sql-opslagets tidsforbrug... Evt. sætte starttid i
toppen af siden og sluttid i bunden, så har i hvor lang tid det tog at lave
hele siden...
starttid = timer
her er noget sql
sluttid = timer
tid = sluttid - starttid
Mvh,
Kim
| |
Jesper Stocholm (06-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 06-04-01 15:53 |
|
"Kim Søvø Pedersen" <ksp@diaphoni.dk> wrote in
<ugkz6.104$mj.17348@news101.telia.com>:
>
>> det kommer vist an på, hvilken database du arbejder med. Jeg har
>> aldrig
>hørt
>> om, at fx MS Access skulle opgive dette - men er til gengæld sikker
>> på, at du kan trække det ud, hvis du arbejder med MS SQL Svr. Jeg
>> kunne selv godt tænke mig at kunne dette - men ved desværre ikke
>> hvordan.
>>
>
>I kan lave en lille timer-anordning, og eksperimentere med hvor i kan
>placere den for at få sql-opslagets tidsforbrug... Evt. sætte starttid i
>toppen af siden og sluttid i bunden, så har i hvor lang tid det tog at
>lave hele siden...
>
>starttid = timer
>her er noget sql
>sluttid = timer
>
>tid = sluttid - starttid
>
det er rigtigt ... men det vil så under alle omstændigheder inkludere tiden
for at afvikle en del af scriptet - tiden for at opnå forbindelse til
database etc ... det kommer aldrig til at være den eksakte dbquery-tid
(selvom den nok kommer tæt på).
--
Mary had a little key (It's all she could export), and all the email
that she sent was opened at the Fort."
(Ron Rivest)
- Jesper Stocholm - http://stocholm.dk
| |
Kim Søvsø Pedersen (06-04-2001)
| Kommentar Fra : Kim Søvsø Pedersen |
Dato : 06-04-01 16:20 |
|
> det er rigtigt ... men det vil så under alle omstændigheder inkludere
tiden
> for at afvikle en del af scriptet - tiden for at opnå forbindelse til
> database etc ... det kommer aldrig til at være den eksakte dbquery-tid
> (selvom den nok kommer tæt på).
Det kan der være noget om, men et-eller-andet tal er bedre end ikke noget
tal :p
| |
Jesper Stocholm (06-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 06-04-01 16:24 |
|
"Kim Søvsø Pedersen" <kim@kimpedersen.dk> wrote in <9akmjp$lfm$1
@sunsite.dk>:
>> det er rigtigt ... men det vil så under alle omstændigheder inkludere
>tiden
>> for at afvikle en del af scriptet - tiden for at opnå forbindelse til
>> database etc ... det kommer aldrig til at være den eksakte dbquery-tid
>> (selvom den nok kommer tæt på).
>
>Det kan der være noget om, men et-eller-andet tal er bedre end ikke noget
>tal :p
>
tja ... det er vi så ikke enige om ... hvis man ikke har de rigtige tal ...
hvorfor så skrive dem ?
--
Mary had a little key (It's all she could export), and all the email
that she sent was opened at the Fort."
(Ron Rivest)
- Jesper Stocholm - http://stocholm.dk
| |
Jakob Andersen (07-04-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 07-04-01 23:02 |
|
"Jesper Stocholm" <usenet@stocholm.dk> wrote in message
news:Xns907BAB8DD31CBspamstocholmdk@192.38.208.81...
> det er rigtigt ... men det vil så under alle omstændigheder inkludere
tiden
> for at afvikle en del af scriptet - tiden for at opnå forbindelse til
> database etc ... det kommer aldrig til at være den eksakte dbquery-tid
> (selvom den nok kommer tæt på).
Du kan hvis du bruger MS SQL få returneret svartiderne når du fyrer en SQL
statement af i Query Analyser få en hel Rapport om tidsforbrug osv..
Men det hjælper jo nok ikke i denne sammenhæng..
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
| |
Jesper Stocholm (08-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 08-04-01 02:17 |
|
"Jakob Andersen" <jakob@andersen.as> wrote in <9ao37m$3ra$1@sunsite.dk>:
>"Jesper Stocholm" <usenet@stocholm.dk> wrote in message
>news:Xns907BAB8DD31CBspamstocholmdk@192.38.208.81...
>> det er rigtigt ... men det vil så under alle omstændigheder inkludere
>tiden
>> for at afvikle en del af scriptet - tiden for at opnå forbindelse til
>> database etc ... det kommer aldrig til at være den eksakte dbquery-tid
>> (selvom den nok kommer tæt på).
>
>Du kan hvis du bruger MS SQL få returneret svartiderne når du fyrer en SQL
>statement af i Query Analyser få en hel Rapport om tidsforbrug osv..
>
>Men det hjælper jo nok ikke i denne sammenhæng..
>
mjaeh ... som jeg sagde til en i microsoft.public.sqlserver.server ...
fortæl det til min ASP-side ... ¨
--
Jesper Stocholm
http://stocholm.dk
MSN Messenger: jesper<remove this>stocholm@hotmail.com
ICQ: 13214885
| |
Jesper Stocholm (06-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 06-04-01 19:14 |
|
"Kim Søvø Pedersen" <ksp@diaphoni.dk> wrote in
<ugkz6.104$mj.17348@news101.telia.com>:
>
>> det kommer vist an på, hvilken database du arbejder med. Jeg har
>> aldrig
>hørt
>> om, at fx MS Access skulle opgive dette - men er til gengæld sikker
>> på, at du kan trække det ud, hvis du arbejder med MS SQL Svr. Jeg
>> kunne selv godt tænke mig at kunne dette - men ved desværre ikke
>> hvordan.
>>
>
>I kan lave en lille timer-anordning, og eksperimentere med hvor i kan
>placere den for at få sql-opslagets tidsforbrug... Evt. sætte starttid i
>toppen af siden og sluttid i bunden, så har i hvor lang tid det tog at
>lave hele siden...
>
>starttid = timer
>her er noget sql
>sluttid = timer
>
>tid = sluttid - starttid
>
Jeg har forhørt mig i en SQL-server gruppe, og det lader ikke til, at det
kan lade sig gøre at hente informationen om afviklingstiden for en
forespørgsel - men det kan med et trick lade sig gøre ved anvendelse af
stored procedures. Tricket er faktisk identisk med forslaget fra Kim - dog
med den forskel, at tidsforbruget i dette tilfælde bliver korrekt. Et
eksempel på dette er denne stored procedure
CREATE stored_procedure
AS
time0 = current_timestamp
SELECT * FROM Table
total_time = current_timestamp-time0
GO
Som det ses, så kan det i dette tilfælde lade sig gøre at få det nøjagtige
tidsforbrug - da man her kan komme vilkårlig "tæt" på udførslen af
forspørgslen.
--
Mary had a little key (It's all she could export), and all the email
that she sent was opened at the Fort."
(Ron Rivest)
- Jesper Stocholm - http://stocholm.dk
| |
Kim Søvsø Pedersen (06-04-2001)
| Kommentar Fra : Kim Søvsø Pedersen |
Dato : 06-04-01 21:24 |
|
> Som det ses, så kan det i dette tilfælde lade sig gøre at få det nøjagtige
> tidsforbrug - da man her kan komme vilkårlig "tæt" på udførslen af
> forspørgslen.
Det er vel det samme som mit forslag, hvis man sætter mine starttid og
sluttid umiddelbart omkring sql-sætningen?
starttid = timer
sql
sluttid = timer
tid = sluttid - starttid
Kim
| |
Jesper Stocholm (06-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 06-04-01 20:36 |
|
"Kim Søvsø Pedersen" <kim@kimpedersen.dk> wrote in
<9al4tl$rsn$1@sunsite.dk>:
>
>> Som det ses, så kan det i dette tilfælde lade sig gøre at få det
>> nøjagtige tidsforbrug - da man her kan komme vilkårlig "tæt" på
>> udførslen af forspørgslen.
>
>
>Det er vel det samme som mit forslag, hvis man sætter mine starttid og
>sluttid umiddelbart omkring sql-sætningen?
>
>starttid = timer
> sql
>sluttid = timer
>
>tid = sluttid - starttid
>
det er "i samme dur" ... men imo ikke det samme. Når du laver det på en ASP-
side, så medtager du i tidsintervallet kommunikationen til og fra serveren
(der potentielt ikke er den samme maskine), compilering af scriptlinien etc.
Derfor kommer der en del snavs med i den beregnede tid. Når du laver det i
en stored procedure, så er disse ting ikke med. Det er klart, at de to
metoder ligner hinanden - men der er stor forskel på det. Din metode kan
bruges til at skrive:
"Det tog <tid> fra kommandoen blev sendt til serveren til den kom tilbage
med et svar"
Metoden med stored procedure kan derimod bruges til at skrive:
"Det tog <tid> at afvikle forespørgslen"
.... og det er ikke det samme.
--
Mary had a little key (It's all she could export), and all the email
that she sent was opened at the Fort."
(Ron Rivest)
- Jesper Stocholm - http://stocholm.dk
| |
Kim Søvsø Pedersen (06-04-2001)
| Kommentar Fra : Kim Søvsø Pedersen |
Dato : 06-04-01 23:40 |
|
> ... og det er ikke det samme.
>
Men hvor stor er tidsforskellen reelt? Kan man ikke lokke dig til at lave en
test? :)
Evt. med forskellig datamængde i sql-forespørgslerne, så man kan se om
forskellen stiger eksponentielt med datamængden..
Mvh,
Kim
| |
Jesper Stocholm (06-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 06-04-01 22:50 |
|
"Kim Søvsø Pedersen" <kim@kimpedersen.dk> wrote in
<9alct7$gfg$1@sunsite.dk>:
>> ... og det er ikke det samme.
>>
>
>Men hvor stor er tidsforskellen reelt? Kan man ikke lokke dig til at
>lave en test? :)
>
næeh ... det kan du ikke ... ... jeg har heller ikke en fornemmelse af,
hvor stor forskellen vil være (og i de fleste tilfælde vil det nok ikke være
meget).
>Evt. med forskellig datamængde i sql-forespørgslerne, så man kan se om
>forskellen stiger eksponentielt med datamængden..
>
det er rigtigt, at det kunne være interessant at se, hvor stor forskellen er
- men jeg har ikke lige et testmiljø, der vil give konsistente data - jeg
skal dog nok have det i tankerne. Det var sådan set heller ikke det, der var
meningen med min kværulering ... det var blot at påpege de forskelle der er
i de to forskellige måder at måle på. At det så ofte nok ikke vil være mere
end nogle hundrede millisekunder - er noget andet.
Jeg kunne dog forestille mig, at forskellen stiger markant med
kompleksiteten af forespørgslen - og mængden af data i resultatet. Men om
det er eksponentielt ved jeg ikke.
--
Mary had a little key (It's all she could export), and all the email
that she sent was opened at the Fort."
(Ron Rivest)
- Jesper Stocholm - http://stocholm.dk
| |
Pelle (06-04-2001)
| Kommentar Fra : Pelle |
Dato : 06-04-01 23:56 |
|
> >starttid = timer
> > sql
> >sluttid = timer
> >
> >tid = sluttid - starttid
> >
Takker for forslagene - ovenstående ser ud til at virke som det skal, jeg
undre mig bare lidt over hvilken
værdi serveren retumere.. er det tiden i milisec. eller sec ? følgende
syntax og Resultater er:
Det tog <% =total_time %> at foretag opslaget, hvor total_time retunere
"8,007813E-02"
Jeg får fejl i prøver at benytte:
CREATE stored_procedure
AS
time0 = current_timestamp
SELECT * FROM Table
total_time = current_timestamp-time0
GO
Er dette VBscript? jeg kan ikke forstå hvorfor time0 får værdien fra
current_timestamp for
senere (efter SQL) at blive trukket fra sig selv igen - når jeg benytter det
forslag retuner total_time
altid værdien 0 - er dette ikke en fejl
Jeg skal måske lige for god orden skyld fortælle at jeg laver en forspørgsel
i en access2000 database.
Der 'kikkes/søges' i 35 forskellige 'felter' - på i alt +16000 poster
(kort)
så det skal vel tag et stykke tid
Endnu en gang tak for hjælpen
Peter Jensen
| |
Kim Søvsø Pedersen (07-04-2001)
| Kommentar Fra : Kim Søvsø Pedersen |
Dato : 07-04-01 12:27 |
|
> Det tog <% =total_time %> at foretag opslaget, hvor total_time retunere
> "8,007813E-02"
>
Prøv med round(total_time,2) hvis du vil have det i sekunder med to
decimaler :)
| |
Jesper Stocholm (07-04-2001)
| Kommentar Fra : Jesper Stocholm |
Dato : 07-04-01 11:28 |
|
"Pelle" <mail@icedesign.dk> wrote in <9alhkj$hkt$1@news.inet.tele.dk>:
>CREATE stored_procedure
>
>AS
>
>time0 = current_timestamp
>
>SELECT * FROM Table
>
>total_time = current_timestamp-time0
>
>GO
denne kode er ikke vbs-kode ... det er kode fra en stored procedure - og kan
ikke umiddelbart bruges i din asp-side.
jeg kunne forestille mig, at du skulle bruge noget i retning af
str_sql = "SELECT * FROM table"
time0 = now()
conn.execute(str_sql)
total_time = now()-time0
.... og så det som Kim skrev.
--
Jesper Stocholm
http://stocholm.dk
MSN Messenger: jesper<remove this>stocholm@hotmail.com
ICQ: 13214885
| |
Pelle (07-04-2001)
| Kommentar Fra : Pelle |
Dato : 07-04-01 22:49 |
|
Hej ieg
Tak til alle i gruppen for de mange gode forslag - fandt et lille script på
nettet, men desværre har min ISP'er ikke indstalleret
ASP komponentet ved navn Server.CreateObject("Softwing.Profiler") derfor
virker scripte ikke hos mig.
måske andre kan ha' glæde af det:
<%
Response.Expires = 0
Response.Buffer = True
Dim xObj, intPass, dblTime, URL
Set xObj = Server.CreateObject("Softwing.Profiler")
' ### Begin Mesurement
xObj.ProfileStart()
Dim strA
strA ="Run"
For intI = 1 to 1000
strA = Replace(strA,"R","Run")
Next
profileElapsed = xObj.ProfileStop()
' ### End Mesurement
Set xObj = Nothing
intPass = Request.QueryString ("pass")
dblTime = Request.QueryString ("time")
If intPass = "" Then
intPass = 0
dblTime = 0
End If
intPass = intPass +1
dblTime = dblTime + profileElapsed
URL = Request.ServerVariables ("SCRIPT_NAME")
If intPass = 30 Then
Respons.Write "Average Time Elapesed: "
Respons.Write FormatNumber ((dblTime/intPass)/10,1)
Respons.Write "milleseconds<br>"
Respons.Write "A HREF=""" & URL & """ >Test igen</a>"
Else
Respons.Clear
URL = URL & "?pass=" & intPass & "&time=" & dblTime
Respons.Redirect URL
End If
%>
Mvh
Peter Jensen
| |
|
|