- A hozzászóláshoz be kell jelentkezni
Hozzászólások
SQL query, tehát SELECT|UPDATE|DELETE stb. szótól az első pontosvesszőig nézzük, nem egy teljes PL-SQL blokkra vagy egy PROCEDURE hosszára vonatkozik a kérdés (ha INSERT-ben 80 sortörés van egy egyszerű blogbejegyzésben, természetesen az sem ér, legalábbis nem számít attól a query 82 sorosnak, legyen az mondjuk 1-5-be eső ;) ).
Nálam a csúcs 47 sor (és nem, nem lehetett kevesebből megoldani többek szerint sem (ilyen query-t azért review-oltatok másokkal is, még ha meg is bízna bennem anélkül is az, aki megkért), subquery és azokon keresztül más és más alapján groupolás, rakás tábla hol INNER hol FULL OUTER joinolása, egy táblából több példány (pl. users u_in, u_out), CASE-es select oszlop, stb. kellettek bele, azzal "gyorsan megvan" (na jó, azért ezekkel együtt is ritka az ilyen hosszú)).
- A hozzászóláshoz be kell jelentkezni
47 sor az nem sok. Nalunk az ugyviteli rendszerben kb. teljesen atlagosak.
Viszont van olyan querynk, ami ket reszre lett szedve (mindketto 150-200 sor kb.) es ez-az mar PHP-ben lett osszekapcsolva, mert nagyon elburjanzottak volna a casek es ezt-azt tobb helyre is be kellett volna tenni, ami miatt nem 2-3 perc alatt futott volna le a cucc, hanem 20-30. Az meg nekunk mar tul sok lett volna :)
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Nekem egy sor egy select :)
- A hozzászóláshoz be kell jelentkezni
252, most is működik. :D
- A hozzászóláshoz be kell jelentkezni
Tippre beirtam a 11-15-ot, de igazabol nem tudom. Meg mondjuk a hossza a tordelesen mulik... en eleg sokat tordelek, viszont messze nem vagyok egy SQL guru. Ja es mi van a PL/SQL, PL/pgSQL-lel...?
- A hozzászóláshoz be kell jelentkezni
"Nem írtam még soha semmit semmilyen SQL-ben", mindig a stackoverflow-ról másolom őket.
--
zsebHUP-ot használok!
- A hozzászóláshoz be kell jelentkezni
+1 :D
amúgy írjon sql-t valami tool inkább... inkább hql vagy jpql muhaha... vagy linq broáf
- A hozzászóláshoz be kell jelentkezni
Na de amikor szinte ugyan azt unionolod 4x, az nem ér ám :)
- A hozzászóláshoz be kell jelentkezni
>200:
260 sor körüli volt az enyém egy régebbi munkahelyemen, szerencsére már nem nagyon emlékszem rá, egy kolléga scriptjét kellett kiegészítenem, az lett ekkora.
Ellenben ugyanaz a kolléga vitte a prímet, az övé 600 fölött volt, de abban rengeteg hasonlót kapcsolt össze unionokkal.
- A hozzászóláshoz be kell jelentkezni
Adattárház?
- A hozzászóláshoz be kell jelentkezni
Egy csomagkövető szoftverhez készült számlázóhoz tartozó query volt.
- A hozzászóláshoz be kell jelentkezni
Most hirtelen egy 45 sorosat talaltam, de hasznal TEMPORARY TABLE-oket is, ugyhogy igazabol osszesen 220 sor. (Itt is tartom az okolszabalyt: ami egy kepernyonel hosszabb, azt -ha lehet- bontom.)
- A hozzászóláshoz be kell jelentkezni
Elsore ugy olvastam, hogy "legrosszabb" :)
- A hozzászóláshoz be kell jelentkezni
Hmm, asszem a leghosszabb query egy sport-kupa-helyezés kiértékelő query volt.
A probléma, hogy mysql (és amennyire tudom gyakorlatilag az összes dbms) minden order-ben levő részt kiértékel, még akkor is ha nincs rá szükség, és kb 15-18 rendezési szempont volt a végleges helyezés megállapításához.
Az elsők triviálisak, és nincs is velük gond (több összesített pontszám, több forduló-résztvétel), de egyre összetettebbek lettek, és a vége már olyasmi szempont volt hogy "a több összesített folyamatos mérközés-idő veszített pont nélkül", ami kb 4-6 join + 2 aggregation subquery csak magában... Persze soha nem is fordult elő, hogy a 2-4 szempont után még további szempontok szükségesek lettek volna. Szóval a nagy trükk az volt, hogy az order-t subquery-vel megoldani, ami egy if(count(),..,..)-tal eldöntötte, hogy egyáltalán szükséges-e tovább értékelni, vagy csak egy konstansot dobjon vissza... (és szerencsére a subquery-k fedték egymást annyira, hogy querycache-ben maradjanak az adatok)
Ok, persze nem a leghatékonyabb módszer mindent egy query-ben megoldani, de ez amolyan proof-of-concept volt: hogy lehet sql query-ben is complex-branching kiértékelést futtatni...
Monjuk, ma már itt járunk: szívesen megnéznék egy perceptron/NN query-t back-propagation-query-párral XD
- A hozzászóláshoz be kell jelentkezni
Valaki mutasson már egy 200 felettit ha publikussá tehető
- A hozzászóláshoz be kell jelentkezni
Semmi extra, csak kell hozzá egy 800 táblából álló adatbázis, ahol összesíteni a fogyásokat, beszerzéseket, és az egyéb kapcsolódó dolgokat, pl. hol milyen terhelés van, ami akár beszállítónként is változhat, stb. stb. stb. És ez mondjuk érint 10-20 táblát.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Kicsit olyan érzésem van ilyenkor (nyilván nem biztos, hogy indokolt) , hogy valami nagyon "be van nézve" vagy "nem ésszerű" :)
- A hozzászóláshoz be kell jelentkezni
Teljesen indokolt az az adatbázis. Oké, 1-2 tervezési döntéssel én is tudnék ott vitatkozni, de alapvetően nagyjából értem, hogy miért úgy oldották meg ahogy. Ha meg soknak tűnik a 800? Nos, igen, sok. De maga az ERP rendszer is rengeteg funkcióval bír, szóval nem nagyon tudod megoldani kevesebből.
El kell fogadni, hogy nem csak hétvége alatt összerakható random php oldalak vannak, hanem sok éve fejlesztett komplex rendszerek is. Vagy ugyanúgy a 6 éve kezdett webshop rendszerünk:
db=# select count(*) from information_schema.tables where table_schema not in ('information_schema', 'pg_catalog', '_webshopcore') and table_type = 'BASE TABLE';
count
-------
265
(1 row)
Ennyi, sok funkció => sok adattábla. Még ha a felhasználói oldalról nem is feltétlen látszik egyből.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Mindig egysorost irok.
- A hozzászóláshoz be kell jelentkezni
Szerintem egy 5 sor fölötti már gyakorlatilag tervezési hibásnak tekinthető. Természetesen nem a listából összeállított IN ... meg extended insertekre gondolok, hanem a 10+ join és union + subselectes lekérdezésekre...
- A hozzászóláshoz be kell jelentkezni
Az 5 túl szigorú, de van benne valami.
Másrészt az sem mindegy, hogy sok union-ból, és case-ből, adódik-e a hosszúság, vagy az összetettségből.
Én annak vagyok a híve, hogy jobb könnyen átlátható részekre bontani a dolgokat.
- A hozzászóláshoz be kell jelentkezni
Igazából az 5-öt csak úgy írtam, a lényeg, hogy egy végtelen hosszú queryt soha senki nem fog senki se debugolni, se optimalizálni. Ha működik, akkor az kétes dicsőség, inkább szerencse, vagy leginkább pont a mérete miatt nem könnyű olyan esetet mutatni, amikor NEM működik, pedig valójában jó eséllyel van ilyen. Pl. ha nem működőnek nevezzük a soha le nem futó lekérdezést, ami kevés adatnál egyébként hibátlan...
- A hozzászóláshoz be kell jelentkezni
Nem feltetlen kell itt rendszeresen futo querykre gondolni, de egy nagyobb rendszer statisztikai, riportjai igenis lehetnek ekkorak. En is irtam mar 10 soros query-t, mert hat tablat kellett osszekapcsolnom, plusz meg subquery-vel le is kellett gyujtenem, hogy mit keresek egyaltalan. Persze, szet lehet az ilyet szedni ugy, hogy az adatok egy reszet a szoftver ertelmezi es a query-k kozt szallitja az adatokat - de ha egy alapvetoen ritkan (napi/heti egyszer) futo queryrol van szo, akkor felesleges. Az RDBM-esek tobbek kozt erre lettek kitalalva, hogy adatok kozt keressenek, akar bonyolult szempontok alapjan is. Ha csak a tablazatokra lenne szuksegunk, az mehetne CSV fajlokban is.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ja ritkán fut, akkor nem sokat számít, hogy több darabból áll össze az eredmény, viszont sokkal könnyebb fejleszteni, és utólag értelmezni, pláne más fejlesztőnek... :)
- A hozzászóláshoz be kell jelentkezni
Ha jól emlékszem 18-20 körül volt, egy 6 táblás kapcsolás MsSQL-ben.
Hasonló 18-20 körüli volt MySQL-ben is, de ott 8 táblához kellett joinolni a dolgokat..
--
Fontos! Ha berágok, nem feltétlen személyed ellen szól...
openSUSE 13.1 x86_64
- A hozzászóláshoz be kell jelentkezni
Közel 300, nem emlékszem pontosan. Napi leltár, excelt generál a kis program, és kiküldi mailben megadott címekre.
________________________________________________
http://kronosz.krocomp.hu
- A hozzászóláshoz be kell jelentkezni
SQL-ből küld levelet? Azt hogyan?
- A hozzászóláshoz be kell jelentkezni
MSSQL-ben barmi random, a .net alapkonyvtar reszet kepezo assembly-t tudsz hasznalni...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
jó hát assemblybõl emailt küldeni is elég hardcore
~~~~~~~~
deb http://deb.metaltux.tk/ wheezy testing
- A hozzászóláshoz be kell jelentkezni
.NET assembly != assembly ;)
- A hozzászóláshoz be kell jelentkezni
Az kicsit állat lenne...főleg egy sql lekérdezésből hívogatva.
------------------
My Open-Source Android "Projects"
- A hozzászóláshoz be kell jelentkezni
Nem szavaztam vele, mert nem én írtam, de tudok >1000 soros selectről is. Oracle, xml generálás.
- A hozzászóláshoz be kell jelentkezni
1 soros - nem tettem bele newline-t :D
ezt gondolom már kitárgyaltátok a topikban, nem olvastam.
inkább karakterben vagy méginkább nyelvi elemek számában mérve lenne reprezentatív a kérdés.
~~~~~~~~
deb http://deb.metaltux.tk/ wheezy testing
- A hozzászóláshoz be kell jelentkezni
Az éri, ha kódból generáltam SQL-t, amit lefuttattam? (Interaktív lekérdezés, kb. 350 feltétel alapján.) Egy átlag összekattintgatott lekérdezéshez generált 3-400 soros SQL-t.
- A hozzászóláshoz be kell jelentkezni
ORM? Úgy szerintem már én is generáltam több száz soros lekérdezést, csak soha nem néztem meg. :) (Mielőtt valaki kérdezi, éles projekten még nem volt lehetőségem ilyesmire.)
- A hozzászóláshoz be kell jelentkezni
Szerintem a karakterszám a lényeg (szóközök nélkül), nem az, hogy hány soros.
SELECT
*
FROM
akarmi
Ez most akkor 4 sor?
--
PtY - www.onlinedemo.hu
- A hozzászóláshoz be kell jelentkezni