Adatbázis: SQL, XML DB

Mysql lekérdezés belassul, beáll

Adva van egy suse 10.3 64bit, core2quad, 4GB ram, mysql 5.0.45.

A következő a probléma: a mysqlen másodpercenként kb 135-500 lekérdezés/sec fut. a max terhelésen kb 500. időközönként előfordul, hogy egy egy lekérdezés beáll a mysqlbe, vagy nagyon lassan fut le, ez 10-15 sec, vagy meg se várom, hogy lefusson, mert mögötte beáll a többi. van hogy 300-400 sec-ig fut, ekkor már kilövöm. ilyen kveri áll be hogy: update table set mezo=mezo+1 where id='valami', egy 100.000 soros táblán, vagy 45.000 soron egy egyszerű select. ugyanakkor olyan lekérdezések is beállnak, amik máskor szempillantás alatt lefutnak. a beállt lekérdezések státusza: sending data, copying to tmp table, update, removing tmp, szóval a létező összes állapotba beáll. a load ez egekbe ugrik, volt 400-as is, alapbol 3-5. van hogy a mysql 4 napig "hibátlanul" fut, majd naponta két ilyen beállás is bejön. nem reprodukálható, különböző kverik állnak be, még azt se lehet mondani, hogy egy kveri a hibás. myisam táblák.
itt a my.cnf:
max_connections = 300
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 1024
sort_buffer_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
max_heap_table_size = 64M
tmp_table_size = 96M
query_cache_type = 1
query_cache_size = 32M
thread_concurrency = 8
join_buffer_size = 32M

de már mindenféle variációt kipróbáltam.

viszonylag sok a tmp table is, azt akarom, hogy csinálok egy 100-200mbos ramdriveot, és oda rakom a tmpdir-t. de most hiába van megadba a my.cnfbe a /var/mysql tempnek, a mysql a #sql_aaaa_1.MYD MYI fájlokat továbbra is a /var/lib/mysql-be szorja, ez a datadir egyébként. van erre valami oka, vagy mi?

valaki esetleg találkozott már ilyennel? mit kéne állítani, vagy mi a rossz?

köszönöm a segítséget.

[Megoldva] SQL: időszeletes táblák összekapcsolása

Sziasztok!

A következő feladathoz keresek valami megoldást SQL parancsokkal (MS SQL server 2003 + Crystal Report). 2-3 lekérdezéssel Crystal Reportban valahogy össze tudom "berhelni", de ha jól sejtem ezt egyedi SQL függvényekkel is meg lehet oldani valahogy, de ezen a téren még nincs tapasztalatom.

Szóval adott két tábla az egyik a raktármozgásokat tartalmazza, a másik a termékek árait az egyes időszakokban. Hogyan tudom a beérkezés napján érvényes árakkal kilistázni a termékeket?

1. tábla:
cikkszám
dátum
db

2. tábla
cikkszám
ár
érvényesség kezdete (értelemszerűen az ár a következő dátumig/rekordig/ érvényes)

Előre is kösz!

Oracle HTMLDB - nem talalom...

Sziasztok!

Van egy teszt Oracle serverem, 11g. Tettem fel ala egy HTMLDB-t (apex), ahogy az Installation Guide leirja, fel is ment, latom is a fajljait az oracle rendszereben. A 8080-as porton elvben figyel az Oracle belso HTTP mittudomen mije, de latni nem latok semmit, nem reagal semmire. A /apex -re atiranyit a /apex/apex oldalra, amire kozli, hogy kossz, de ilyen nincs (gyk. HTTP404).

Egy howto alapjan probalgatom a http://oraclegep:8080/apex/apex_admin es http://oraclegep:8080/pls/apex/apex_admin cimeket, de az egyiken application not found a masikon meg sima HTTP 404 fogad.

Tudom, hogy valamit elrontok, de nem tudom, mit. Ha lehet step-by-step magyarazat kellene, mert igencsak kezdo vok Oracle ugyekben.

Véletlenszerű kiválasztás adatbázisból súlyozással

Adott egy adathalom egy adatbázisban, amihez minden eleméhez hozzá van rendelve egy súly (1..10). E közül kellene véletlenszerűen kiválasztani elemeket a súlyozást figyelembe véve.

Szerintetek mi a legjobb módszer a rendezésre?

Alapvetően egy ORDER BY rész vagy egy képlet kellene amiben kettő változó van (súly, véletlen szám), ami alapján rendezni lehetne az elemeket.

MATCH AGAINST tábla kapcsolásával

Sziasztok!

Van egy ilyen adatbázisom (leegyszerűsítve a problémához). Van a main tábla, amiben az id-k elsődleges kulcsok. A main táblán kívül van két másik tábla, amelyekben az id-k a main rekordjainak az id-i, viszont ahogyan a mintában látható, az két sub táblában több rekord is kapcsolódhat ugyanahhoz a main id-hez.

Amit meg kellene oldanom az az, hogy egy adott stringet keressek a main tábla mtext, a sub1 tábla s1text és a sub2 tábla s2text mezőjében, majd eredményként a main tábla megfelelő id-it adjam vissza. A main tábla esetén nem probléma a keresés, egyszerűen

SELECT id FROM main WHERE MATCH mtext AGAINST 'string'

Viszont nem tudtam megoldani, hogy ugyanebben az adatbázis kérésben a sub táblákat hozzákapcsolva azokban is keressen, természetesen az id-k figyelembe vételével. Valakinek van javaslata a probléma megoldására?

pgsql, schema kerdes

Sziasztok!

plpgsql-ben kell csinalnom fuggvenyt, idaig nincs is gond.
Viszont egy valtozoban van benne, hogy melyik schemaban kellene dolgoznom(SELECT-tel).
Most szegeny sql a valtozo nevenek megfelelo schemat keresi, nem pedig a valtozoban tarolt erteknek megfelelo schemat! :(

google nem igazan segitett, postgresql doksit bujom!

Koszi Zsirmo

update, megoldas: http://www.postgresql.org/docs/8.3/static/plpgsql-statements.html#PLPGS…

Progress adatbáziskezelő Linux/Debian alá

Sziasztok!

Az a feladatom, hogy egy Progress nevű adatbáziskezelőt tegyek egy Debiant-futtató szerverre.
A "telepítőt" megkaptam, de nem boldogulok vele.
Sok nyomozás után kiderült, hogy egy proinst nevű fájlt kell futtatnom.
Ezt írja a futtatás után:

/home/redman/pro/_ovrly: relocation error: /home/redman/pro/_ovrly: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
The installation terminated abnormally.
Do you wish to delete the installation files before exiting? (y/n)

Jó, rákerestem a hibaüzenetre. Ezt a megoldást javasolták:
export LD_ASSUME_KERNEL=2.4.20

Utána a futtatáskor már más hibát dob:
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory

megnéztem hogy az _ovrly fájlnak milyen megosztott library-k kellenek:

# ldd /home/redman/_ovrly
linux-gate.so.1 => (0xb7ef4000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7ee9000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7ec3000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7d68000)
/lib/ld-linux.so.2 (0xb7ef5000)

# ldd /bin/bash
linux-gate.so.1 => (0xb7f8d000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7f54000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7f50000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7df5000)
/lib/ld-linux.so.2 (0xb7f8e000)

A fájlok ott vannak, ahol ezek alapján keresi őket. Nem értem miért nem találja.
Tudna valaki segíteni? Esetleg debian csomag?

Üdv: redman

összeszámolás

egy lekérdezést kellene csinálnom...
mégpedig, hogy melyik pilóta hányszor lett első második harmadik negyedik ötödik....a baj az hogy az még megvan kilistázva hogy melyik pilóta milyen helyezéseket ért el...csak nem tudom összeszámolni hogy pl massa 1 4 ami azt jelentené hogy massa 4* volt első

SELECT pilota_nev,helyezes
FROM pilotak, eredmenyek
WHERE eredmenyek.pilotaid = pilotak.pilotaid order by pilotak.pilotaid

ez a select mondja meg hogy pl heidfeld 2 heidfeld 4 heidfeld 2 ami rendben azt jelenti hogy egyszer 2 egyszer 4 egyszer 2dik lett...ezt kéne valahogy csoportosítanom hogy azt írja ki hogy heidfeld 4 1 heidfeld 2 2 hogy negyedik egyszer lett második meg kétszer

több index

Sziasztok!

Kérdés a következő volna.
Adott egy tábla, több mezővel, több indexel.

select * from table where a>21342 order by b

Kérdés: ha a tábla a és b szerint (külön-külön) indexelve van, akkor a lekérdezésnél az adatbáziskezelő használja-e mindkét indexet?
Tapasztalat, hogy jóval gyorsabb a lekérdezés, ha mindkét index rajta van, viszont az explain csak az egyiket írja ki.