Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Delphi i izbor praavog servera za veeliku bazu?

[es] :: Pascal / Delphi / Kylix :: Delphi i izbor praavog servera za veeliku bazu?

Strane: 1 2

[ Pregleda: 5489 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Delphi i izbor praavog servera za veeliku bazu?20.08.2010. u 21:28 - pre 166 meseci
Drugari!!!
Imam jedan problem pa mislim da nisam pogresio forum.
Naime, treba da se kreira baza koja ce imati oko 200 000 000 (200 miliona) zapisa, pri tom treba paziti na karakteristike racunara na kom ce se ona izvrsavati . Moguci alati su Delphi ili C++,moj izbor je naravno Delphi.
A za server se nisam definitivno odlucio, mislio sam firebird. Procitah negde na netu da je moguce oko 1 bilion ( 1 000 000 000 000 ) zapisa i velicina baze 1TB.
Kakva su vsa iskustva,moe li pomoc?
Hvala unapred!!!

Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 11:22 - pre 166 meseci
Izbor servera za baze podataka ne zavisi samo od veličine baze i broja zapisa, već i od potrebnih performansi.

Postoje nekoliko pitanja na koja trebaš da daš odgovor (bez određenog reda).

1. Da li RDBMS treba da bude free ili komercijalan?
2. Da li RDBMS treba da podržava veliki broj konkurentnih konekcija?
3. Na kakvom će hardveru RDBMS da radi?
4. Da li će biti potrebe za proširenjem kapaciteta RDBMS (veće baze, podrška za više CPU-a, količina RAM-a)?
5. Da li RDBMS treba da podržava Unicode i koji?
6. Da li Delphi (ili C++) ima ugrađenu podršku za pristup izabranom RDBMS ili je potrebno nabavljati 3rd party komponente?
7. Da li RDBMS radi samo na Windows ili je multiplatformski?
8. Kakvo je očekivano opterećenje RDBMS i dali će to opterećenje rasti vremenom?
9. Da li RDBMS treba da ima ugrađeni mehanizam za Backup/Restore?

Ima tu još dosta pitanja ali sam se ovoga setio na brzinu. Davanjem odgovora na ova (i dodatna) pitanja, možeš da stvoriš bolju sliku o tome šta ti treba i šta će ti najbolje zadovoljiti te potrebe. Ajde pokušaj da daš odgovore makar na ova moja pitanja, pa možemo da probamo da ti damo neki konkretan predlog.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 11:45 - pre 166 meseci
@rambo
Hvala
1.Bilo bi pozeljno da je free server.
na pitanja 2 i od 4 do9 nemma odgovor
3.
odgovor na to pitanje je u atach-u?
Izgleda da imam previse malo informacija?

Don't worry be happy
Prikačeni fajlovi
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 12:04 - pre 166 meseci
Hm, na osnovu informacija sa slike, rekao bih da se radi o laptopu.

Da li planiraš da ti na istom računaru bude pokrenut RDBMS i aplikacija koja mu pristupa? Ako da, onda ti svakako preporučujem Firebird. Čak i ako će server biti na drugom računaru, Firebird je i dalje odlično rešenje. Firebird zadovoljava skoro sve uslove koje sam postavio u prvom odgovoru.

E sada, možeš li mi reći koji Delphi koristiš ili planiraš da koristiš? Veoma je bitno zato što od toga zavisi koje ćeš komponente koristiti za pristup Firebird serveru. U starijim verzijama Delphi-ja ćeš morati da koristiš komercijalne (ili nedovoljno dobre free) komponente. Najnovije verzije Delphi-ja (2010 pre svega) imaju ugrađenu podršku za Firebird preko dbExpress komponenti. Ako ti nije problem da koristiš komercijalne komponente, onda preporučujem UniDAC (ili samo IBDAC) ili FIBPlus (koji sam dosta koristio pre UniDAC-a). Za free rešenje, pogledaj ZeosLib http://sourceforge.net/projects/zeoslib/

Toliko za sada. Bilo bi dobro da daš još malo detalja o načinu na koji planiraš da koristiš tu bazu podataka. To što će imati veliki broj zapisa nije nikakav problem. Mnogo je bitniji način i uslovi pod kojima će se takvoj bazi pristupati.

PS: Nemoj nikada da postavljaš sliku na kojoj pišu bilo kakvi lični podaci, naroičto serijski brojevi
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 12:26 - pre 166 meseci
@ rambo
Hval ti na sugestijakma i pomoci
koristio bi Delphi 7 imam i 2010,ali je malo veci na hardu,i DBExpress komponente koje u ovoj verziji imaju podrsku za interbase a firebird je free verzija pa se slazu )
Generalno mislis da moze taj lap top da radi sa firebird i velikom bazom???
Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 12:43 - pre 166 meseci
Nije nikakav problem da u Firebird imaš i 10x veću bazu. Ono što je bitno je da ćeš morati da koristiš 3rd party komponente da bi joj pristupao, naročito ako se radi o Firebird v2.0 ili novijoj verziji. Postoje određene razlike između InterBase i novijih verzija Firebirda koje nisu podržane u dbExpress pre Delphi 2010. U najboljem slučaju, uzmi IBDAC ili FIBPlus komponente. U najgorem uzmi ZeosLib. Alternativa može da bude i da koristiš Firebird v1.5 i dbExpress komponente u Delphi 7, ali ti ipak savetujem da koristiš Firebird v2.1 ili noviji, pre svega zato što podržava nove tehnologije kao što je podrška za više procesora ili jezgara.

Taj laptop je inače više nego dovoljan da pokreće Firebird + tvoju aplikaciju zajedno.

Jedno pitanje. Dali ćeš tu bazu koristiti samo ti ili će biti potrebno da joj preko mreže pristupaju više korisnika istovremeno?
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 13:21 - pre 166 meseci
Citat:
Jedno pitanje. Dali ćeš tu bazu koristiti samo ti ili će biti potrebno da joj preko mreže pristupaju više korisnika istovremeno?

Takve infomracije nemma od narucioca

Jedio sto znam je da mora da se iz csv fajla upise u bazu i neka manipulacija sa podacima iz baze....
Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 13:47 - pre 166 meseci
Vrlo kratak odgovor:

Firebird v2.1.3
Delphi 2010
dbExpress components

"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 14:37 - pre 166 meseci
Ok
Hvala
Ima li neka fora da se "automatizuje"ubacivanje iz csv fajla???
Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 19:28 - pre 166 meseci
Ima više načina.

Recimo, http://www.guacosoft.com/xmlwizard/ je jedan od alata koji možeš da koristiš da importuješ CSV fajl u Firebird bazu i da kasnije vršiš poređenje između njih.

U Delphi postoji više načina za rad sa CSV fajlovima. Potraži malo po internetu, pa ako ne nađeš ništa korisno, probaću da ti dalje pomognem.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 20:23 - pre 166 meseci
@rambo
hvala na aplikaciji, zanimljivo resenje, ali meni treba nesto da ja napravim...
Gledao sam ado connection i uspeo sam da se konektujem na .csv file ali kad se prikaze u dbgridu bude prazan...odonosno mnogo praznih redova i jedna kolona
evo kod koji sam uradio
Code:

var
  conString,qryString:String;
begin
  conString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
    folderName + ';Extended Properties="Text;HDR=YES;FMT=Delimited";Persist Security Info=False';
  qryString := 'select * from [' + fileName + ']';
  with dmMain do
  begin
    ADOConn.Close;
    ADOConn.ConnectionString:=conString;
    try
      ADOConn.Open;
      csvQuery.Close;
      csvQuery.SQL.Text:=qryString;
      csvQuery.Open;
       except
          ShowMessage('File not must open!');

      end;
    end;

  end;

moze li pomoc??
googlanje mi nije dalo nesto pametno...
Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?21.08.2010. u 23:12 - pre 166 meseci
Skini i instaliraj JVCL komponente za Delphi. U tom paketu ćeš naći ogroman broj vrlo korisnih komponenti za svakakve potrebe. JVCL je open source projekat.

Ono što će tebe najviše zanimati u JVCL su JvCVSDataSet (JV Data Access paleta) i JvCVSBase (JV Jans CSV paleta) komponente. Omogućavaju direktno učitavanje CVS fajlova i rad sa njima kao sa bilo kojom tabelom iz neke baze.

Adresa: http://sourceforge.net/projects/jvcl
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?22.08.2010. u 12:26 - pre 166 meseci
hval rambo
nasao sam komponente,i i medjuvremenu sam nasao neke zanimljive programcice za ucitavanje csv file....tako da sam resio problem
E sad pojavljuje mi se drugi problem
Znao bi to "peske" resiti ali zbog velicine baze trebam brzo resenje
Naime
Potrebno je ukoliko zapis postoji u bazi da se ne upise,a takodje ukloliko postoji zapis,a doda se jedna ili vise kolona u fajlu updatovati u bazu i dodati kolone nove, takodje ako dodje do izmene u csv fajlu treba updatovati taj zapis
E sad moj problem je kako porediti svaki sa svakim zapisom iz fajla i iz baze?
A da to radi maksimalno brzo?
Mogao bi preko neke for ili while petlje ali mislim da je to sporo....
Ima li mi pomoci?
Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.dynamic.sbb.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?22.08.2010. u 14:00 - pre 166 meseci
Uh, mnogo tražiš

Generalno, sve to može da se uradi, ali je pitanje dali mora tako?

Za prvi slučaj (provera dali zapis već postoji u bazi), to nije teško, ali zbog velikog broja zapisa koje imaš u CSV fajlu, taj proces može da bude prilično dug. Jedno od rešenja za ovaj problem je da, umesto da svaki put importuješ ceo CSV fajl, radiš samo "diferencijalni" import. Za to bi trebao da dobijaš CSV fajl koji sadrži samo izmenjene ili dodate zapise. Na taj način ćeš drastično smanjiti vreme koje je potrebno da se ti podaci upišu u bazu.

Što se tiče dodavanja kolona, i to je moguće. Potrebno je da negde imaš listu kolona u CSV fajlu i listu kolona u bazi. Po definiciji, prvi red u CSV fajlu može da bude naslovni red koji sadrži nazive kolona. Ako u svom CSV fajlu imaš taj naslovni red, onda trebaš samo da povučeš listu kolona iz njega i uporediš je sa listom kolona u bazi. Na kraju samo izvršiš dodavanje novih kolona u bazi i nastaviš sa importovanjem podataka.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?22.08.2010. u 14:03 - pre 166 meseci
> Potrebno je ukoliko zapis postoji u bazi da se ne upise,

Pretpostavljam da imaš neka jedinstvena polja u toj tabeli, ako nisu već deo primarnog ključa, postavi unique indeks nad njima i pokušaj upis, dobićeš exception.

> a takodje ukloliko postoji zapis,a doda se jedna ili vise kolona u fajlu updatovati u bazu i dodati kolone nove,

Izmenu strukture tabele moraš raditi pre svih drugih operacija, za to se koriste DDL komande ALTER TABLE ADD <defincija polja>, vodi računa da to radiš dok niko drugi nije nakačen na bazu, da radiš u posebnoj transakciji i da pošto je commituješ, rekonektuješ vezu sa bazom (disconnect i connect na database komponenti).

> takodje ako dodje do izmene u csv fajlu treba updatovati taj zapis E sad moj problem je kako porediti svaki sa svakim zapisom iz fajla i iz baze?
> A da to radi maksimalno brzo? Mogao bi preko neke for ili while petlje ali mislim da je to sporo....Ima li mi pomoci?

Da li ti imaš neki flag u csv fajlu koji kaže da je zapis promenjen? Ako ne onda ćeš morati da upoređuješ sva polja tog zapisa iz baze sa onime u fajlu, to jednostavno mora biti sporo.
Ako u csv falju slogovi imaju IDeve koji idu u nekom opsegu onda možeš učitati samo slogove iz tabele koji pripadaju tom opsegu i tako ubrzati stvar. Ako ne imaš nekoliko mogućnosti:

a) ako csv uvek sadrži sve slogove kao i fajl u bazi onda možeš probati da uradiš drop tabele i da ponovo sve importuješ.
b) učitaš sve slogove iz baze i sve slogove iz csva i upoređuješ, eventualno možeš probati sa kbmMemTable komponentama da olakšaš nešto od toga.
c) ubaciš sve slogove iz csva u neku tmp tabelu i onda serijom upita i joinova upoređuješ šta se sve razlikuje i to menjaš, ovo je najbrže uraditi preko stored procedure.
d) ako možeš uticati na generisanje csv fajla, dodaj flag polje koje će ti kazivati da li je slog nov ili izmenjen.
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?22.08.2010. u 20:33 - pre 166 meseci
Hval VAm na pmoci
imam jos jedno pitanje
kako od liste napraviti dataset?????
Neko iskustvo,kod....sve mi pomaze...????
hvala
Don't worry be happy
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?23.08.2010. u 18:25 - pre 166 meseci
> kako od liste napraviti dataset?????

Definiši šta je lista? Ako misliš na neki externi fajl a dataset komponente koje koristiš nemaju mogućnost učitavanja, onda kreneš i sam uradiš, definišeš polja i redom dodaješ slogove.
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?26.08.2010. u 23:50 - pre 166 meseci
Hvala Vam na pomoci
konektovao sam se na csv sa adodatasetom i ok je...
Imam jedan skroz nov problem
Naime ranija verzija delphija koju sam koristio bila je 7, a sad ovaj programcic radim u verziji 2010 kao sto mi rambo predlozio.
kod koji je radio u d7 ovde ima gresku
evo koda
Code:

     IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
      PDatabase := IniFile.ReadString('MAIN', 'database', '');

      SQLConn.Close;

  repeat

      try
         SQLConn.Params.Values['Database'] := PDatabase;
         SQLConn.Params.Values['User_name'] := 'SYSDBA';
         SQLConn.Params.Values['Password'] := 'masterkey';
         SQLConn.Params.Values['ServerCharSet'] := 'WIN1250';
         SQLConn.Params.Values['SQLDialect'] := '3';
         SQLConn.DriverName := 'Interbase';
         SQLConn.GetDriverFunc := 'getSQLDriverINTERBASE';
         //SQLConn.LibraryName := 'dbexpint.dll';
         SQLConn.LoginPrompt := false;
         SQLConn.VendorLib := 'fbclient.dll';
         SQLConn.Open;
         IniFile.WriteString('main','database',PDatabase);
      except
          on E:Exception do
            begin
              ShowMessage('Pristup bazi nije moguc ' + #13 + '  Greska: ' + E.Message);
              Conection;
            end;
      end;
  until SQLConn.Connected;

a evo i greske
'unable to load dbxint.dll'
e sad guglanjem sam nasao da je neka fora oko putanja

https://forums.embarcadero.com/thread.jspa?messageID=170118
na ovom linku se objasnajva za firebird sto sam ja rpvo pokusao...
kod mene je putanja,
C:\Program Files\Embarcadero\RAD Studio\7.0\bin\dbxint.dll
Da napomenem da radim u windows 7
Pomoc sto hitnije


Don't worry be happy
 
Odgovor na temu

rambo
Dejan Petković
Beograd

Član broj: 6095
Poruke: 190
*.adsl.eunet.rs.



+6 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?27.08.2010. u 12:09 - pre 166 meseci
A kad ti se tačno javlja ta greška? Kada pokreneš aplikaciju iz Delphi IDE ili eksterno? Ako je eksterno, onda je bitno da taj dbxint.dll prekopiras u folder gde ti je aplikacija ili u windows\system32 folder (prva opcija je bolja).

Ako se javlja kada pokreneš aplikaciju iz IDE, onda uradi sledeće. Nemoj iz koda da popunjavaš SVE parametre SQLConnection objekta. Obično se iz koda popunjavaju samo Database, Username i Password. Sve ostalo se obično podesi iz Object Inspectora.

Ako ništa od ovoga ne pomogne, daj malo više detalja kada i gde se javlja ta greška pa ćemo probati da rešimo.
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
 
Odgovor na temu

mr.zhile
Ivan ZHILE
C# developer

Član broj: 185721
Poruke: 249
*.opera-mini.net.



+2 Profil

icon Re: Delphi i izbor praavog servera za veeliku bazu?27.08.2010. u 12:31 - pre 166 meseci
@rambo
hvala
Kad pokrenem program onda mi se javi takva greska
ali samo u d2010 u d7 radi sve perfeknto....
Citat:
rambo
Ako se javlja kada pokreneš aplikaciju iz IDE, onda uradi sledeće. Nemoj iz koda da popunjavaš SVE parametre SQLConnection objekta. Obično se iz koda popunjavaju samo Database, Username i Password. Sve ostalo se obično podesi iz Object Inspectora.

Probao pa nhije radilo???
Don't worry be happy
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Delphi i izbor praavog servera za veeliku bazu?

Strane: 1 2

[ Pregleda: 5489 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.