Adatbázis: SQL, XML DB

sql táblák

Helló Mindenkinek!

Nemrég elkezdtem mysql-t tanulni. Klasszikus példa: embereket akartam nyilvántartani. Ezt sikerült megoldani. Utána jött a nagy ötlet: emberek tudjanak üzeneteket küldeni egymásnak. Valami ilyesmire gondoltam:

message tábla:
--------------
| feladó |
| címzett |
| üzenet |
--------------

Ha a valakinek ki kell listázni az elküldött leveleit, lekérdezem azokat amikben ő a feladó. Ha valakinek a kapott leveleit akkor a címzettek alaján megy a lekérdezés.

A probléma ott kezdődik, amikor valaki több embernek is szeretne küldeni. "címzett"-ekhez hogyan tudnék tetszőleges számú embert beírni? Másképpen: Lehet-e "címzett" egy tömb amibe pl. 10db 30 karakterből álló string megy? Vagy mégjobb: Lehet-e "címzett" egy tábla? Mondjuk ilyen:

---------------
| címzettek |
| elolvasta |
| törölte |
---------------

Értelem szerűen, első a nevek akiknek el lett küldve, második igaz/hamis, harmadik szintén igaz/hamis.

Esetleg ha tud valaki jó leírás(oka)t, vagy könyvcím(ek)et azt is szívesen veszem!

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