Posted By: jerryiii (Vsude dobre, v CR nejhur) on 'CZdatabases'
Title:     Re: Dlouhe transakce
Date:      Thu Jun 14 00:47:40 2001

> Ahoj.
> 
>   Tak se proste muze stat, ze transakce prekroci urcitou mez, za kterou ji
> DB 
> stroj proste sestreli. 

Jojo, to je nechutna situace ... a nejhorsi ze s tim nic neudelas, pokud je 
admin blbec tak si nepomuzes a vsichni to svadej na tebe ze ti to nefunguje 
... 

>   Kdyz jsem vsechno odladil, vyhodil testovaci cykly a vypisy, tak mi ta 
> transakce (radove asi 10 INSERTu, 40 SELECTU + jedna temporary tabulka)
> konci 
> tak do 30 az 40 vterin (zalezi na vytizeni serveru - jednou mi jela minutu a
> pul :-)

Jeee, tak to sme si nerozumeli, ja sem mel na mysli veskrze single prikazy, je 
videt ze nejsem datar :) pokud ti bezi 50 prikazu 30 sekund tak to je sakra 
rychly, mas necelou sekundu na prikaz coz je v pohode ... Ja myslel ze mate 
jeden prikaz kterej bezi deistky sekund i minut ...

A ted abych nebyl offtopic:

Mam dve tabulky, v jedny se udrzujou hledani, v druhy se udrzujou kriteria pro 
kazdy hledani. Svazany sou pres sloupec [key] (ach ta fantazie) a ja 
potrebuju zjistit, kolik hledani NEma v tabulce kriterii zaznamy - tj. kolik 
jich bylo bez kriterii. V soucasny dobe to delam takhle:

SELECT count(*) FROM [request] WHERE [key] NOT IN (SELECT [key] FROM 
[requestcriteria])

To je relativne jednoduchy, ale abych zjistil pocet tech co MA kriteria musim 
udelat druhej select (budto count(*) from [request] a pak odecist anebo 
vyhodit to NOT). A zajimalo by me, jestli se to da udelat nejak v jednom, 
neco jako:

sum(CASE WHEN [key] IN (SELECT [key] FROM [requestcriteria]) THEN 1 ELSE NULL 
END) AS  [ma],
sum(CASE WHEN [key] IN (SELECT [key] FROM [requestcriteria]) THEN NULL ELSE 1 
END) AS [nema]

Jenze na to mi server pise ze nemuzu mit subquery v agregovany funkci (proc 
ne?). Takze, da se to nejak udelat?

A dalsi vec, jak muzu zjistit prumernej pocet zaznamu v [requestcriteria] na 
jeden klic? Jednim prikazem nejlepe, zatim sem to delal takhle:

SELECT count(*) FROM [requestcriteria] GROUP BY [key] COMPUTE 
avg(CAST(count(*) AS float))

ale to mi vraci dva recordsety pricemz ten prvni je pro me nepotrebnej a 
zbytecne mi zatezuje sit a server (tim ze se posila).

Diky za napady, co se tyce DB tak sem lamer az to hezky neni :) Jo, bezi to na 
SQL Serveru a jedna se o stovky tisic radku ... 

> Jovo. 

          Jerry III

Enough said ...
http://jerryiii.home.sprynet.com/mica/index.htm

Search the boards