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