TCH (statz) | #1, Főfasz (10443) |
4583 | #1c60 | ^ | Idézet | Mon, 07 May 2012 11:04:28 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Miért, én tán nem ezt mondtam? De dzsuvában vagy cisztában te sose fogsz olyan kódot írni ami ehető a CPU-nak. Én nem a motort minősítettem, nekem csak az interface-el volt dolgom, én az SQL-jét minősítettem. Azonkívül: http://www.informationweek.com/news/201001901 http://it.toolbox.com/blogs/database-soup/postgresql-publishes-first-real-benchmark-17470 12%-os többletsebesség a szarákül javára, persze lehet, hogy sok szerveren, ultramagas teljesítménnyel ez több, de hogy egyáltalán nem lehetne PgSQL-t odatenni, azt valami teszttel kéne igazolni, nem pedig szarákülös babonával. :P Nem, ez egy sima promóció, amit egy multi rendelt meg, de többet nem mondhatok (pláne nem publikus felületen), mert páros lábbal rúgnak ki, bocsi. Hátööö...úgy kb. nem. http://www.dba-oracle.com/t_oracle_nextval_function.htm SQL> create sequence pubs2 2 start with 8 3 increment by 2 4 maxvalue 10000 5 cycle 6 cache 5; Sequence created. SQL> select pubs2.nextval from dual; NEXTVAL ---------- 8 Ezt a múltkor már mondtad, én meg mondtam, hogy erre nem találtam példát, szal, azért nem használtam, mert nem tudtam róla, hogy van ilyen, ha van. De egyébiránt is, most nem ez a lényeg, hanem hogy sehol nem írták, hogy INSERT-nél tilos lenne használni. Au. Lófaszt! Leírtam, hogy by primary_table_id és lang_id alapján! Én arról beszélek, hogy a CLOB-ot nem lehet JOIN-al hozzácsapni a lekéréshez! SELECT products.price, products_lang.name, products_lang.description FROM products LEFT JOIN products_lang ON (products.id=products_lang.products_id AND products_lang.lang_id=1)Mondjuk ezt gyakorlatban nem is próbáltuk, mert egynyelvű volt a cumó, a manualban olvastuk Mcloaddal. Kúrwára nem ez volt a lényeg! Hanem, hogy egy kibaszott string a query-ben nem lehet hosszabb, mint 4000 byte, vagyis pl egy 7 kilós textet csak két darabban tudsz betölteni a CLOB-ba! Ezt a nyócterás kapacitást csak gunyorból hoztam fel, hogy tök jó, hogy van, meg minden, de 4000 byte-onként feltölteni 8 terát, az...hát nem is tudom, nincs rá szó. Nem. Nekünk nem sikerült. Nem találtunk a gugliban semmit ezzel kapcsolatban, nem tudjuk, hogy egyáltalán a tábláknak, vagy mezőknek van-e saját karakterkódolása. Mondjuk, ha nincs, DB szinten kell beállítani, akkor alapvetően baszhattuk, mert a szerver beállításaihoz nem fértünk hozzá. Ideologizálta a nyavalya, én nem azért haragszom a szarákülre, mert megvette a SUN-t - nekem a SUN se kutyám, se macskám, egyedül a Solarist és a vasakat sajnálom (mert az én szememben a dzsuva nem érték) - hanem mert a DB-jük SQL-je egy nagy FOS. Csupa nagybetűvel, vastagon, aláhúzva. Csak úgy mondanám, hogy egészen addig a napig, amíg nem kellett dolgoznom a szaráküllel, nekem semmi bajom nem volt velük. Szóval semmi SUN-fanság, semmi anti-enterprise mozgalom, egyszerűen szar a szarákül! |
djpety alias "Pety" | #6, Lófasz (953) |
269 | #1c61 | ^ | Idézet | Mon, 07 May 2012 13:21:30 +02 |
84.2.*.* | *.pool.t-online.hu |
Na, nézném az érettségi feladatokat, mert az eduline pont most írta ki 13:00-kor, erre nem bedől a szerverük? http://capture.pety.me/2012-05-07_1320.png A kép magáért beszél :) Persze nem mintha azért dőlne be mert microsoft, meg windows meg .net, de akkor is poén :D |
Prometheus (statz) | #3, Főfasz (1824) |
83 | #1c62 | ^ | Idézet | Mon, 07 May 2012 13:41:07 +02 |
84.0.*.* | *.dsl.pool.telekom.hu |
Gyertek le Szegedre! 12-13-án 10-18 órakos retró számítóséges játék-kiállítás lesz! |
TCH (statz) | #1, Főfasz (10443) |
108 | #1c63 | ^ | Idézet | Mon, 07 May 2012 13:50:28 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Pety: Hát ez epic fail. :D Az is szánalom, hogy a config xml-ben van. Prometheus: Én sajnos nem érek rá. :( |
saxus (statz) | #9, Agyfasz (419) |
2378 | #1c64 | ^ | Idézet | Mon, 07 May 2012 16:35:23 +02 |
0.0.*.* | *.kgb.gov.su |
2007-es cikk, azért az már eléggé elavult (Utóbbi években nagyon durván tolták a skálázódás iparágat a PG-nél). Viszont az igazi skálázódás nem ott kezdődik, hogy egy gépre felskálázódik, hanem egy nagyobbacska clusterre felskálázódik. Ilyet normálisan jelenleg se a MySQL, se a PostgreSQL nem tud AFAIK. Másrészt a Pg multi process-single thread arch, egy combosabb query-t esélytelen, hogy magától bepárhuzamosítson jelenleg.
Erre van a JNI vagy a C++/CLR. Utóbbiban meg aztán minden mehet. Breaking news: .NET-re nem csak C#-ban lehet kódolni.
Na ez úgy fasság, ahogy van: helyesen: SELECT ... FROM products LEFT JOIN products_lang ON (products.id = products_lang.products_id) WHERE products_lang.lang_id = 1; VAGY SELECT ... FROM products LEFT JOIN (SELECT * FROM products_lang WHERE lang_id = 1) t ON (products.id = t.products_id) Azt mondanám, hogy az esetek 99%-ában az első verzió a jó, az optimalizer statisztika alapján úgy is eldönti, hogy mikor hogy mit érdemes. (Seq scan v hash join v subquery-re átalakítani, stb.) Persze, tudom, te ódzkodsz az ilyenektől, de egy RDBMS pont az a témakör, ahol lehet tuningolni, de ész nélkül csak ártasz és nem mindig vannak örök érvényű szabályok, csak statisztikák.
MySQL-ben a varchar meg 255 karakter lehet. Oszt'?
RDBMS, DB, tábla, mező. Jobb helyeken erre mind lehet állítani.
Csupán kemi enyhén sajnálkozó "szétbarmolta a SUN-t" felszólalására kívántam reagálni. :) |
TCH (statz) | #1, Főfasz (10443) |
4065 | #1c65 | ^ | Idézet | Mon, 07 May 2012 17:46:28 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Na ja, de gondolom a Pg-nél nem ültek a babérjaikon. Tökmind1 miben kódolsz rá, fosnet marad. :P Ez nem igaz. Én nem ódzkodok semmitől sem ami szükséges. Ami felesleges, attól ódzkodok. Szal, aszondod jobb, ha a lang_id a WHERE paramok között van? Akkor is, ha mondjuk több táblát csatolok össze? Ilyesmire gondolok: SELECT product.price, product_lang.name, product_lang.description, product_categoriy_lang.name, product_image.filename FROM products LEFT JOIN product_lang ON (product.id = product_lang.product_id) LEFT JOIN product_category_lang ON (product.product_category_id = product_category_lang.product_category_id) LEFT JOIN product_image ON (product.id = product_image.product_id) WHERE product_lang.lang_id = '1' AND product_category_lang.lang_id = '1' AND product_image.primary = '1';Itt a "lang" táblákban van lang_id, az "image" táblában nincs. Nekem itt valahogy nem stimmel ez a lang_id a WHERE paraméterben dolog, nem kéne a más más mezőkkel bíró kapcsolásoknak az ON klauzában lennie? Nem így kéne ennek kinéznie? SELECT product.price, product_lang.name, product_lang.description, product_categoriy_lang.name, product_image.filename FROM products LEFT JOIN product_lang ON (product.id = product_lang.product_id AND product_lang.lang_id = '1') LEFT JOIN product_category_lang ON (product.product_category_id = product_category_lang.product_category_id AND product_category_lang.lang_id = '1') LEFT JOIN product_image ON (product.id = product_image.product_id AND product_image.primary = '1');Csak kérdés, mondjad, ha kurwára nem. Sz*rk: Kibencsmárkoltam, saxus verziója lassabb: 5000 darab változó limitjű lekérés egy 10000 termékes nyolc nyelvű db-n 121.883 : 118.345 az only joinos javára. Sz*rk 2: Ja és saxus megint nem a lényeget fogta meg, mert most nem egy JOIN optimális használata volt a kérdés, hanem az, hogy CLOB típusú mezőt nem lehet JOIN-olni! Nem azzal akarunk csatolni, azt akarjuk csatolni, de nem lehet! Bullshit, ez utóljára a MySQL 4-ben volt igaz, MySQL 5-ben - azaz usque 2005 óta - a varchar 65535 byte (és nem karakter!) lehet maximum. Csak ha 255 byte-nál hosszabb a mező, akkor nem 1, hanem 2 byte-on tárolja le a mező hosszát. És ugyanez vonatkozik a char-ra és a text típusokra is, csak ott már a típusban benne van, hogy max milyen hosszú lehet és mennyin tárolja a hosszát. (Tiny 255 / 1, Sima text 65535 / 2, Medium 16777215 / 3, Long 4294967295 / 4) Mikor láttál te utóljára MySQL-t? 2004-ben? És még én vagyok elmaradva. :P És egyébként már megint nem a lényeget ragadtad meg. Nem az volt a bajom, hogy szarákülben a varchar2 max 4000 lehet, hanem, hogy a CLOB-ba sem lehet egyszerre többet belerakni, azaz muszáj darabolni a sztringet! Akkor mi kúrtuk el. Van ez így. A kugli nem segített túl sokat. :P Jahogy. Mondjuk keminek igaza van abban, hogy szétbarmolták a Sun-t, csak én nem ezért rágtam be a szarákülre. |
saxus (statz) | #9, Agyfasz (419) |
1090 | #1c66 | ^ | Idézet | Mon, 07 May 2012 19:50:19 +02 |
84.3.*.* | *.catv.pool.telekom.hu |
Sajnos nap, mint nap látok. Empoweb az MySQL, BC ugye PG, az ügyviteli rendszer meg MSSQL. :D
De mi köze lenne ahhoz, hogy melyik táblában van és melyikben nincs? Mindi a FROM kifejezéshez (ugye az lehet subquery) joinolsz valamit és aközött állítasz fel valami relációt. JOIN-ba meg nem tudsz feltételvizsgálatot rakni, hisz az összekötésre való, nem szűrésre. Szóval nem jobb, hanem szimplán fasság, amit akarsz. Szűrni a WHERE záradékban lehet. Már megint a CPU oldaláról akarod megközelíteni a dolgot, holott SQL esetén az a legrosszabb. SQL egy deklaratív nyelv, azt mond meg egy RDBMS-nek, hogy mit akarsz, ne azt, hogy hogyan akarja, mert csak szívni fogsz vele. És első a relációs algebra, utána a manual. Btw. Pg-ben van USING (mezonev), amivel azonos nevű mezőket nagyon jól össze lehet kapcsolni. |
TCH (statz) | #1, Főfasz (10443) |
1015 | #1c67 | ^ | Idézet | Mon, 07 May 2012 20:35:28 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
És akkor hogy a fenébe nem jutott el hozzád egy ennyire default info usque 7 év alatt? Az mennyire trágya egyébként? Bár gondolom a szarákülnél nem szarabb. :P Rendben van saxus, ki fogom mérni, hogy melyik a gyorsabb, ha neked lesz igazad, kihajigálok minden ON klauzás szűrést. Thx a tippet. |
Prometheus (statz) | #3, Főfasz (1824) |
73 | #1c68 | ^ | Idézet | Mon, 07 May 2012 23:32:58 +02 |
84.0.*.* | *.dsl.pool.telekom.hu |
Holnap (kedden) megyek be Budapestre, délután ráérek. Ha érdekel valakit. |
TCH (statz) | #1, Főfasz (10443) |
33 | #1c69 | ^ | Idézet | Tue, 08 May 2012 00:15:58 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Hát én hétköznap sose érek rá. :P |
saxus (statz) | #9, Agyfasz (419) |
1577 | #1c6a | ^ | Idézet | Tue, 08 May 2012 07:03:55 +02 |
84.3.*.* | *.catv.pool.telekom.hu |
Nem nagyon van benne fejlesztés, csak a meglévő rendszer tákolása, életben tartása.
Az ügyviteli rendszer? Hááááát... Tipikus magyar Delphis ügyviteli rendszer. Mint számlázó, raktárkészlet nyilvántartó nem rossz, de vannak benne gyökérségek. Pl. hogy minden ablak modálisan nyílik meg... Az MSSQL-ről viszont egész pozitív a véleményem van, 100-150 soros, subquerykkel, joinokkal, aggregációkkal teleolt queryket is meglehetősen gyorsan végrehajta. A Management Studio meg egész jó hozzá, főleg, amikor épp nem makacsolja meg magát az intellisense. Bár, tippre összefügg azzal, hogy a gépemre Express Editiont raktam, mert a szerveren lévőt meg nem tudom miből rakták. Mondjuk az advankedebb funkcióit annyira nem ismerem.
Mondjuk SQL-nél annyi a probléma még, hogy ami éppen gyorsabb, az nem biztos, hogy a jövőben is gyorsabb lesz. (Pl. egy ANALYZE alkalmával az addigi statisztikák alapján és figyelembe véve a táblák változását bármikor felülbírálhatja a korábbi query planokat) Vagy más rendszerben is gyorsabb lesz. Nézni kell hozzá EXPLAIN-t, abból általában hamarább kiderül, hogy hol lehetne gyorsítani. |
TCH (statz) | #1, Főfasz (10443) |
1118 | #1c6b | ^ | Idézet | Tue, 08 May 2012 12:03:05 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Nem ezt kérdeztem. Azt kérdeztem, hogy hogy a fenébe nem jutott el hozzád az egyik legalapabb adattípus infó, több mint fél évtized alatt. Erre az nem válasz, hogy a MySQL-t csak tákolják - amit ugyan én nem tudok, de ha a varchar kapacitásáról szóló értesüléseidet figyelembe veszem, lehet, hogy ezt is benézted. :P (Egyébként MySQL fan sem vagyok, épp most írom át a saját rendszeremet PgSQL-re.) Nem, az M$SQL. Szinte gondoltam volna. :P Bár mondjuk elismerem, miután kénytelen voltam a szarákül szarjával tolni az ipart, valahogy olyan sejtésem támadt, hogy ennyire még a mikrofos sem lehet szar... Ok, nézni fogok ikszplént is. :P |
TCH (statz) | #1, Főfasz (10443) |
341 | #1c6c | ^ | Idézet | Tue, 08 May 2012 21:45:18 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Tud valaki egy olyan algoritmust, ami gyorsan tud ismétlődést keresni? Csak mert írtam egy hash függvényt és szeretném kipróbálni, hogy jó valamire. Lehasheltem a számokat 0-9999-ig, nem talált ismétlést, dehát ez kurwa kevés, a teljes 32 bites tartományt le kéne tesztelni, hogy nincs-e benne ismétlődés, aztán meg még stringekkel is. 5let? |
djpety alias "Pety" | #6, Lófasz (953) |
86 | #1c6d | ^ | Idézet | Tue, 08 May 2012 22:33:24 +02 |
84.2.*.* | *.pool.t-online.hu |
Ez például jó lehet? http://www.sciencedirect.com/science/article/pii/019667748490021X |
TCH (statz) | #1, Főfasz (10443) |
620 | #1c6e | ^ | Idézet | Wed, 09 May 2012 00:29:37 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Hát, nem egészen, nekem nem az összes ismétlődés kell, hanem az, hogy van egy N darabból álló listám és az egyes elemeknek egyedieknek kéne lennie. Összedobok valami PHP-s fost ide, hogy érthetőbb legyen:$unique = array(); $matches = 0; foreach ($original as $elem) { if (!in_array($elem, $unique)) { $unique []= $elem; } else { $matches++; } }Na, erre kéne nekem valami olyan algoritmus, ami kurwa sok adatban tud viszonylag gyorsan keresni. A hash algoritmusomat szeretném vele tesztelni, hogy mondjuk, ha végigküldöm a 32 bites tartomány összes integerén, akkor van e benne ismétlődés, ilyenek. |
saxus (statz) | #9, Agyfasz (419) |
642 | #1c6f | ^ | Idézet | Wed, 09 May 2012 00:52:45 +02 |
84.3.*.* | *.catv.pool.telekom.hu |
Toolok jók hozzá és teszi a dolgát. Mi kell még? :)
Inkabb tömbindexnek használd, aztán isset(). Szerintem. |