Autor Téma: Pomalé načítání dat z firebird přes FD i IBX komponenty  (Přečteno 2237 krát)

Offline maca2me

  • Nováček
  • *
  • Příspěvků: 24
  • Karma: 1
    • Verze Delphi: 10.2
Ahoj,

prosím vás o radu. Řeším již nějakou dobu pomalé odezvy a načítání dat přes komponenty TIBconnection a TFDconnection. Všechna data v aplikaci spravuji pomocí DBGrid a DB navigator. Používám komponenty - connection - transaction - query - dataSetProvider - clientDataSet  a pokud mám DBgrid tak i clientDataSet. Když načítám větší počet řádků (nic extrémního - cca 17 000 záznamů), provádí se mi SQL minuty (select * from tabulka), nic složitého. I když v komponentě query zkouším select, je to stejné - čili bez nějakého méno kódu.

Hlavní vodítko, že je něco špatně v nastavení komponent je fakt, že v IBExpertu se těch 17 000 záznamů načte téměř okamžitě (fetch all). Databáze je na síti ale zkoušel jsem i lokální - tam je to rychlejší ale stále veliký rozdíl mezi IBexpertem a delphi. Firebird používáme i v ostatních aplikacích a tento problém nemáme - jsou to však DB, kde je v tabulce max několik stovek záznamů. Nenarazili jste někdo na podobný problém? Nemáte nějaký tip na co se zaměřit? 

DB je firebird 2.5, "server" je Windows 10.

Díky moc předem za rady.
Neexistují hloupé otázky ale jen hloupé odpovědi.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #1 kdy: 08-01-2018, 12:14:58 »
Sundal bych ten client dataset. Jinak tezko radit. Chces prenest vsechny zaznamy nebo mit prenos "on demand"? Jake maji komponenty nastaveni?

Přesně u jednoho co jsem mu upravoval program měl stejný problém. ClientDataset měl nastaven Sort, takže to stále snažil nějak přeřazovat. Mimochodem proč nepoužiješ memory dataset z firedacu?

Zkus jen pro test mít jen query, která není na nic napojená a zkus za jak dlouho se ti načtou data.
Embarcadero MVP - Czech republic

Offline maca2me

  • Nováček
  • *
  • Příspěvků: 24
  • Karma: 1
    • Verze Delphi: 10.2
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #2 kdy: 08-01-2018, 12:42:17 »
Díky za rady.

Zkusil jsem vytvořit jen FDQuery bez clientdataset a spustil dotaz - stále stejné. Všechny záznamy potřebujeme přenést rovnou, on demand nevyužijeme. U komponent necháváme kromě nastavení DB connection všechno v default nastavení. Do podrobnějšího nastavení se nepouštíme a u menších DB nám to problémy nedělá.

Pomalejší je to i na Windows 7 při lokálním použití. Když to omezíme třeba na 1000 záznamů, stejně to trvá několik sekund - to je divné.
Neexistují hloupé otázky ale jen hloupé odpovědi.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #3 kdy: 08-01-2018, 12:54:41 »
No a nejaky jednoduchy select (treba SELECT 1) ti projde ve stejnem datasetu rychle? Snazim se zjistit, zda nemas nejake problemy s nastavenim te query?
Embarcadero MVP - Czech republic

Offline maca2me

  • Nováček
  • *
  • Příspěvků: 24
  • Karma: 1
    • Verze Delphi: 10.2
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #4 kdy: 08-01-2018, 12:55:25 »
Ještě jsme vyzkoušeli nastavení v FDQuery - items to fetch a zakázali metadata a další položky. V query to teď běží rychle. Teď to vypadá ještě na ten clientDataSet. Zkusíme nastavení clientDataSet případně memory dataset jak píšeš.

Díky moc
Neexistují hloupé otázky ale jen hloupé odpovědi.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #5 kdy: 08-01-2018, 12:57:14 »

Jak pises tak davas select * from tabulka, nejsou tam nejake bloby? Zkousel jsi vyjmenovat sloupce, zacit od jednoho a pridavat?
Embarcadero MVP - Czech republic

Offline maca2me

  • Nováček
  • *
  • Příspěvků: 24
  • Karma: 1
    • Verze Delphi: 10.2
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #6 kdy: 08-01-2018, 13:21:13 »
Díky za rady, oba máte pravdu. Tato tabulka obsahuje typ BLOB a proto nám to pomohlo pro query (to už je rychlé). DB jsme převzali a je tam textový popis ve formátu BLOB :-( to jsme přehlédli. Zatím FDMemory dataset. Snad už to rozlouskneme.

Díky za pomoc.
Neexistují hloupé otázky ale jen hloupé odpovědi.

Offline maca2me

  • Nováček
  • *
  • Příspěvků: 24
  • Karma: 1
    • Verze Delphi: 10.2
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #7 kdy: 08-01-2018, 13:51:40 »
My používáme DBGrid a DBNavigátor pro přímou úpravu dat. To jde použít pouze FDQuery i pro zpětné promítnutí změn do DB? Jen kvůli tomu používáme clientDataSet + dataSource
Neexistují hloupé otázky ale jen hloupé odpovědi.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #8 kdy: 08-01-2018, 15:01:01 »

Citace
Jen pro Firebird se budes muset trochu potrapit s definici sloupce autoinkrementalniho klice.
Oni používajú FB2.5 :) Ale priamo v FDQuery sa to dá nastaviť. Priraďuje sa tam generátor.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4396
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #9 kdy: 08-01-2018, 15:08:40 »
Nechcelo sa mi točiť kolieskom myši ;)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline maca2me

  • Nováček
  • *
  • Příspěvků: 24
  • Karma: 1
    • Verze Delphi: 10.2
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #10 kdy: 09-01-2018, 12:00:54 »
Nakonec to přes clientdatasety nešlo, tak jsem raději převedl bloby v DB.

Díky
Neexistují hloupé otázky ale jen hloupé odpovědi.

IBX a Firebird 3

  • Host
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #11 kdy: 18-03-2019, 16:36:18 »
Ahoj.

Jsem stará konzerva. Pracuji (celkem dost úspěšně :-) s Firebird 2.1, Delphi 7,  IBX 7.11. Nyní jsem nucen přejít na FB 3.0. Tak jasně, google používat umím, ale kdyby mi někdo nakopnul, kudy jít, tak by mi ušetřil spoustu času. Byl bych mu vděčný. Teď mi jde především o správnou verzi IBX.

Děkuju
Honza Šebelík

IBX a Firebird 3

  • Host
Re:Pomalé načítání dat z firebird přes FD i IBX komponenty
« Odpověď #12 kdy: 18-03-2019, 16:40:39 »
Omlouvám se, nevšiml jsem si, že píšu k starému tématu.