Adatbázis: SQL, XML DB

MYSQL-hez grafikus lekérdezés

Sziasztok!

Egyre hosszabbak a mysql query-k, amiket írok és kezdek kicsit belezavarodni.

Egyrészt arra lennék kíváncsi, hogy hogyan kellene "rendesen" pl. az egymásba ágyazott SELECT -eket kivitelezni, mert most így a MySQL Workbench 6.x alatt nagyon zavaró, hogy nem látom, melyik zárójelnek hol a párja, stb.

Másrészt azt gondolom most, hogy valamiféle grafikus query szerkesztő biztosan segítene, csak éppen nem nagyon találok ilyet (Linux, Mysql). A Workbench-ben a szerkesztő felület a táblák létrehozását segíti, de a lekérdezést nem (vagy csak elkerülte a figyelmemet).

Szóval, ki hogyan tartja karban a query-ket?

Cözi

[megoldva] MySQL / delete from / Miért lassú?

Sziasztok,

Tudnátok segíteni? Miért lassú az alábbi MySQL parancs?

Többb mint 4 másodpercig fut egy modern gépen, ahol semmi más művelet nincs - többször futtatva is:

delete from table1 where column1 like 'pattern1%' and column2 in (select column3 from table2 where column4='pattern2')

table1 kb. 1100 recordot tartalmaz, ebből 95% a column1 / pattern1% találat.

table2 kb. 5000 recordot tartalmaz, ebből közel nulla a column4 / pattern2 találat.

Host: MySQL v5.7, Ubuntu 16 64 bit, gyors SSD, 1GB az InnoDB pool mem

Lehetne vajon a fentit egyszerűbben vagy gyorsabban? Köszönöm.

Szerk.: (kicsit olvashatóbb forma):

DELETE FROM t1 WHERE c1 LIKE 'p1%' AND c2 IN (SELECT c3 FROM t2 WHERE c4='p2')

Szerk2.: nem tudtom hogy ilyen gyorsan válaszoltok, amit köszönök, ezért indítottam ezelőtt egy SO fórum szálat is, beteszem ide, hátha segít:
http://stackoverflow.com/questions/40702486/mysql-delete-from-why-is-it…

Szerk.: Végül megoldottam index hozzáadásával a tábla2 column3 oszlopához, így nulla idő alatt fut.

SQL Express 2016 SSRS

Sziasztok,

naponta rengeteg riportot kell készítenünk a vezetőségünknek, így elgondolkodtam rajta, hogy mi lenne ha megpróbálnánk automatizálni az egészet.
Kicsit kutakodva rátaláltam, hogy a microsoft sql szervere mellé telepíteni lehet egy report services szolgáltatást, amivel elméletileg megoldható hogy a megfelelő időben a megfelelő embernek kiküldje egy email formájában a szükséges riportot.

Kérdésem csak annyi lenne hogy ez megoldható-e az express verzióval?

Feltelepítettem, elkészítettem az első teszt riportomat is, de sehol sem találok "subscription" lehetőséget.

Ha esetleg express verzióval nem megoldható, akkor nincs valami ötletek hogy hogyan lehetne ezt kivitelezni sok 100e-es licence díjak nélkül?

Köszi előre is.

Egy érthetetlenül lassú query

Sziasztok.

Van egy szép nagy programom, egy összetettre sikerült PostgreSQL adatbázissal: https://github.com/csikfer/lanview2
Elboldogulok úgy általában az SQL-lel, de nem vagyok guru a témában.
Van egy lekérdezés a programba, ami irreálisan lassú. A lekérdezés 4 másodperc, miközben egy teljesen üres táblát kérdez le. Azt érzem, hogy a query messze nem optimális, de a semmin mit lehet molyolni 4 másodpercig, még ha balfasz módon fogalmaztam is meg a kérdést? És persze akkor is sok lesz ez a (több mint) 4 másodperc, ha lesz adat is a táblában, márpedig lehet benne sok rekord.
A query :

SELECT NULL,* FROM ONLY view_alarms WHERE array_length(ack_user_ids, 1) IS NULL AND is_group_place(place_id, ?) AND user_is_any_groups_member(?,online_group_ids);

A view_alarm egy VIEW tábla, amin szerintem van mit finomítani:

CREATE VIEW view_alarms AS
SELECT
a.alarm_id AS view_alarm_id,
a.host_service_id,
hs.node_id,
n.place_id,
a.superior_alarm_id,
a.begin_time,
a.end_time,
a.first_status,
a.max_status,
a.last_status,
alarm_message(host_service_id, max_status) AS msg,
COALESCE(hs.offline_group_ids, s.offline_group_ids) AS offline_group_ids,
COALESCE(hs.online_group_ids, s.online_group_ids) AS online_group_ids,
ARRAY(SELECT user_id FROM user_events WHERE alarm_id = a.alarm_id AND event_type = 'notice') AS notice_user_ids,
ARRAY(SELECT user_id FROM user_events WHERE alarm_id = a.alarm_id AND event_type = 'view') AS view_user_ids,
ARRAY(SELECT user_id FROM user_events WHERE alarm_id = a.alarm_id AND event_type = 'acknowledge') AS ack_user_ids,
ARRAY(SELECT user_id FROM user_events WHERE alarm_id = a.alarm_id AND event_type = 'sendmessage') AS msg_user_ids,
ARRAY(SELECT user_id FROM user_events WHERE alarm_id = a.alarm_id AND event_type = 'sendmail') AS mail_user_ids
FROM alarms AS a
JOIN host_services AS hs USING(host_service_id)
JOIN services AS s USING(service_id)
JOIN nodes AS n USING(node_id)
WHERE NOT a.noalarm;

Az alarms rekordból lehet viszonylag sok is, és fontos lenne, hogy max. 1-2 másodperc alatt lefusson. Elvileg a lekérdezés eredménye néhány sor, de nem kéne kiakadnia a programnak, ha pl. pár száz sor lenne.
A VIEW-ben hozzácsapom a táblához a felhasználói eseményeket (Megjelent a programban a riasztás, megnézte a részleteit, nyugtázta) ezek mint ID tömbök kerülnek a VIEW-ba. Valamint bekerül a VIEW-be a riasztás helye, milyen szolgáltatás, melyik eszközön riasztott.
A query-ben szűrök arra, hogy a riasztás a megfelelő zónában volt-e, az aktuális felhasználó benne van-e a csoportban, melyeknek on-line riasztást kell adni, és hogy nyugtázta-e már valaki ezt a riasztást.
Hogyan lehetne optimalizálni a fenti lekérdezést (további infók a linkben)?

Hogyan regex_replace ?

Sziasztok!
Van egy táblám MySQL alatt.
Ennek a táblának van egy szín mezője(oszlopa), amely tartalmazza a piroslada1500 szót minden rekordnál.
Egy parancs kellene, ami így keződik: SELECT * FROM `autok` WHERE szin regex_replace ....
és a "lada" szót kellene kicserélni "skoda" -ra. Atomrégen (14 évvel ezelőtt) csináltam utoljára ilyet, akkor rutin volt, most teljes üresség kong már a fejemben. Nem használtam. Van aki tud segíteni?

Mariadb/Percona Server thread pool memoria hasznalat

Sziasztok!

Tud valaki egy konkret memoria hasznalatra kalkulaciot thread pool eseten?

Valami hasonlora gondolok, vagy legalabbis a kepletre mint ez:
http://www.mysqlcalculator.com/

Elvileg thread pool eseten nem max_connection-el kell szorozni a per-session ertekeket, csak az egyszerre futhato thread-ek szamaval.
Ezen felul kellhet valami extra memoriahasznalattal szamolni, teszem azt a pool-nak van valami overheadje vagy a varakozo kapcsolatokra is van minimalis memoriafoglalas?

Parallel Universe adatbáziskezelő

Létezik (létezett?) egy olyan program, amit Parallel Universe-nek hívnak és gyakorlatilag a MySQL párhuzamosításra lett kihegyezve. Az utolsó fellelhető verzió az oldalán 2014 év végi. Azóta semmi. Tud valaki róla valamit? Meghalt, megszűnt, átváltott más névre? Ki szeretném próbálni és érdekelne, hogy aktív-e és így van-e értelme foglalkoznom vele.