Autor Téma: Sklamanie z "bohyne"  (Přečteno 9804 krát)

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Sklamanie z "bohyne"
« kdy: 09-07-2016, 02:49:45 »
dnes ma maximáne sklamala DB Firebird ... len tak zo srandy som insertol jednu moju tabulku s neindexovatelnou (pre FIREBIRD) položkou, a div divúci, SQlite mi to zaindexoval (a tak dotaz netrva 1-40s, ale len rádovo v ms) ... total

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #1 kdy: 09-07-2016, 06:08:45 »
Co je "neindexovatelná položka"?

SQLite ti samozřejmě zaindexuje cokoliv, protože (zjednodušeně řečeno) cokoliv považuje za řetězec a není pochopitelně důvod, proč by některé řetězce indexovat mělo a jiné ne.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #2 kdy: 09-07-2016, 08:20:20 »
firebird má obmezdenie na veľkosť indexovaneho retazca ... 1000.. na UNICODE pre page 16384

http://www.firebirdsql.org/refdocs/langrefupd25-ddl-index.html


Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #3 kdy: 09-07-2016, 17:38:35 »
No, to má. A jsou pro to dobré důvody - pokud ti 1000 znaků na začátku nestačí pro dostatečné rozdělení různých řetězců do skupin, ve kterých už budeš prohledávat sekvenčně, tak je ve tvé datové struktuře něco hodně špatně a zřejmě se snažíš používat standardní vyhledávací stromy pro něco jako fulltext. Jako ano, striktně vzato je to omezení a počítám, že asi opravdu existují aplikace, kde to je omezení relevantní, ale nechce se mi věřit, že tvoje aplikace je tento případ.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #4 kdy: 10-07-2016, 07:35:10 »
no to asi áno, ale ako dostať fulltext do firebirdu

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #5 kdy: 10-07-2016, 08:46:18 »
Nevím, nikdy jsem to nepotřeboval, tak jsem to ani nehledal. Ale vím, že používat na to normální vyhledávací indexy je blbost a stěžovat si, že se tomu databáze brání, ještě větší.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #6 kdy: 10-07-2016, 09:27:50 »
no to asi áno, ale ako dostať fulltext do firebirdu
Pouzit full text search engine. V podstate to neni nic sloziteho: text rozbijes na token (kvalita tohoto procesu predurcuje kvalitu hledani) a jednotliva token nacpes do slovniku (ukladal jsem rovnou upper cased verzi + verzi zbavenou hacku a carek pro hledani s ignorovanim velikosti pismen ev. diakritiky) a vytvaris k nemu invertovany index s informaci  o vyskytu. U DB v podstate staci PK zaznamu z BLOBem nebo TEXTem. Jo a jeste musis udelat generator SQL klauzuli, ktere ti pripoji ten slovnik pres invertovany index k SQL dotazu s ev. vyrazy k casti DB, ve ktere chces hledat.

Kdysi jsem to psal v Delphi nad SQLite (jeste pred Lucene) a chodilo to jak z praku.  A i bych ti to poskytnul, ale je to soucast aplikacniho frameworku, takze mnoho veci predpoklada specialni DB vrstvu, spoleha se na knihovny z toho frameworku atd. jinymi slovy je to soucast pomerne rozsahleho frameworku, ze ktereho se to neda samostatne extrahovat a i kdybych ti dal jednotlive komponenty, tak bez znalosti frameworku tomu kodu nebudes velmi pravdepodobne rozumet.

Jestli existuje pro Delphi neco hotoveho nevim. Apache adoptoval projekt Lucene v Jave, ve Free Pascalu je napsan JODA. Ale obecne: z existujicich search enginu se lze inspirovat, jak rozbijeji text na token, jak se vyporadavaji s ohybanim slov apod.  a take mnozinu stop words tj. tech, ktera bude full text ignorovat. Zbytek tj. operace nad invertovanym indexem jsou banalni.

Pro cestinu a prohledavani RSS feedu jsem pouzival stop words:
Kód: Delphi [Vybrat]
  1.   ccsvCzech_StopWords : ANSIString
  2.    = 'A,ALE,BUDE,BY,BYL,BYLA,BYLO,BÝT,CO,DO,I,JÁ,JE,JI,JÍ,K,KE,KU,NA,NE,NEBO,'
  3.    + 'O,OD,ON,ONA,ONO,PO,PRO,PŘI,PŘED,S,SE,SI,TEN,TA,TO,TENTO,TATO,TOTO,TU,'
  4.    + 'U,UŽ,V,VE,Z,ZA,ZE,ŽE';
  5.  

Offline Petr P.

  • Nováček
  • *
  • Příspěvků: 28
  • Karma: 1
    • Verze Delphi: Turbo Delphi 2006
Re:Sklamanie z "bohyne"
« Odpověď #7 kdy: 10-07-2016, 13:00:56 »
Tady něco je
http://www.firebirdfaq.org/faq328/

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #8 kdy: 10-07-2016, 15:06:51 »
tak som hľadal a našiel toto

http://firebirdsql.org/en/sphinx-full-text-search/

síce neviem ako to implementovať, ale skúsim, ak mate nejaké rady, sem s nimi

ps. ale aj tak je pre mňa dosť zvlášne že SQlite to zvládne aj na klasickom indexe .... (180-300ms)

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1262
  • Karma: 51
    • Verze Delphi: 10.3
Re:Sklamanie z "bohyne"
« Odpověď #9 kdy: 10-07-2016, 20:26:28 »
300 ms nevypadá zrovna na použití indexu, ne? Není to spíš tím, že dokáže projít tak rychle všechny záznamy? Jak vlastně vypadá dotaz - něco jako SELECT a.* FROM Pokus a WHERE a.Pole LIKE '%pes%' ?

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #10 kdy: 11-07-2016, 08:00:28 »
ano tak
300ms je super... na firebirde aj 1 minutu

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #11 kdy: 13-07-2016, 00:26:02 »
toto je taky 25kB blok .... teda ani nie cely...nevosiel

Toshiba: Dynabook CX/47C, Dynabook CX/47D, Dynabook Qosmio F40/87EBL, Dynabook Qosmio G40/97E, Dynabook Satellite J70 180E/5, Dynabook Satellite J70 180E/5X, Dynabook Satellite J70 220E/5, Dynabook Satellite J70 220E/5X, Dynabook Satellite K20 180E/W, Dynabook Satellite K20 220E/W, Dynabook Satellite K21 200E/W, Dynabook Satellite T30 166E/5W, Dynabook Satellite T31 200E/5W, Dynabook SS M40 180E/3W, Dynabook SS M40 186C/3W, Dynabook SS RX2 SG120E/2W, Dynabook SS S30 106S/2W, Dynabook TX/65C, Dynabook TX/65D, Dynabook TX/66C, Dynabook TX/66D, Dynabook TX/67C, Dynabook TX/67D, Dynabook TX/67ELP, Dynabook TX/68D, Equium A100-147, Equium A100-299, Equium A100-306, Equium A100-337, Equium A100-338, Equium A200-26D, Equium A210-17I, Equium A210-1AS, Equium A300D-13X, Equium L350D-11D, Equium P300-19O, Equium U300-15i, Equium U400-124, Equium U400-146, Mini Notebook NB100-111, Mini Notebook NB100-115, Mini Notebook NB100-116, Mini Notebook NB100-11G, Mini Notebook NB200, Mini Notebook NB200-SP2903A, Mini Notebook NB200-SP2903C, Mini Notebook NB200-SP2903R, Mini Notebook NB200-SP2904A, Mini Notebook NB200-SP2904C, Mini Notebook NB200-SP2904R, Mini Notebook NB200-SP2905A, Mini Notebook NB200-SP2905C, Mini Notebook NB200-SP2905R, Mini Notebook NB200-SP2908R, Mini Notebook NB200-SP2910A, Mini Notebook NB200-SP2910C, Mini Notebook NB200-SP2910R, Mini Notebook NB200-SP2912A, Mini Notebook NB200-SP2912C, Mini Notebook NB200-SP2912R, Mini Notebook NB200-SP2922R, Mini Notebook NB200-SP2923A, Mini Notebook NB200-SP2923C, Mini Notebook NB200-SP2923R, Mini Notebook NB200/002, Mini Notebook NB200/00C, Mini Notebook NB200/00D, Mini Notebook NB200/00P, Mini Notebook NB200/00Q, Mini Notebook NB205-N210, Mini Notebook NB205-N211, Mini Notebook NB205-N230, Mini Notebook NB205-N310/BN, Mini Notebook NB205-N310BN-G, Mini Notebook NB205-N312/BL, Mini Notebook NB205-N313/P, Mini Notebook NB205-N323BN, Mini Notebook NB205-N325BL, Mini Notebook NB205-N325BN, Mini Notebook NB205-N325PK, Mini Notebook NB205-N325WH, Mini Notebook NB205-N330BL, Mini Notebook NB205-N330BN, Mini Notebook NB205-N330PK, Mini Notebook NB205-N330WH, Mini Notebook NB205-SP2923A, Mini Notebook NB205-SP2923C, Mini Notebook NB205-SP2923R, Mini Notebook NB205-SP2924A, Mini Notebook NB205-SP2924C, Mini Notebook NB205-SP2924R, Portege M400, Portege M400 T-Mobile Austria, Portege M400 T-Mobile Germany, Portege M400 Vodafone, Portege M400-00E00F, Portege M400-08M00G, Portege M400-100, Portege M400-1015E, Portege M400-103, Portege M400-104, Portege M400-105, Portege M400-106, Portege M400-109, Portege M400-10I, Portege M400-10L, Portege M400-10O, Portege M400-10P, Portege M400-10Q, Portege M400-10R, Portege M400-1115E, Portege M400-117, Portege M400-11C, Portege M400-11G, Portege M400-11H, Portege M400-11K, Portege M400-11N, Portege M400-120, Portege M400-1245T, Portege M400-1344T, Portege M400-1414E, Portege M400-1424E, Portege M400-144, Portege M400-1444T, Portege M400-145, Portege M400-146, Portege M400-149, Portege M400-1524E, Portege M400-154, Portege M400-1544T, Portege M400-155, Portege M400-156, Portege M400-1624E, Portege M400-163, Portege M400-164, Portege M400-166, Portege M400-167, Portege M400-170, Portege M400-172, Portege M400-1724E, Portege M400-174, Portege M400-185, Portege M400-195, Portege M400-1HD03D, Portege M400-1HE03D, Portege M400-1XG02V, Portege M400-24202V, Portege M400-2EC03N, Portege M400-2M801K, Portege M400-3G10P, Portege M400-3G143, Portege M400-3G145, Portege M400-EZ5031, Portege M400-PS5032, Portege M400-S4031, Portege M400-S4032, Portege M400-S4034, Portege M400-S5032, Portege M400-S5032X, Portege M400-S933, Portege M400-ST4001, Portege M400-ST4035, Portege M400-ST9113, Portege M400-TD1, Portege M400-TD3, Portege M400/00S01VHL, Portege M400/1200TE, Portege M405-S8003, Portege M500-1014E, Portege M500-1041T, Portege M500-1044T, Portege M500-1114E, Portege M500-1124E, Portege M500-1141T, Portege M500-1144T, Portege M500-1221E, Portege M500-1314E, Portege M500-GF5, Portege M500-P1011E, Portege M500-P1411T, Portege M600, Portege M600-E310, Portege M600-E311T, Portege M600-E313T, Portege M600-E320, Portege M600-E320D, Portege M600-E320T, Portege M600-E321D, Portege M600-E321T, Portege M600-E332T, Portege M600-E340, Portege M600-E341, Portege M600-E345, Portege M600-E347, Portege M600-E349, Portege M600-E360, Portege M600-E360D, Portege M600-E360T, Portege M600-E361T, Portege M600-E363, Portege M600-E367T, Portege M700-007, Portege M700-009, Portege M700-106, Portege M700-108, Portege M700-10B, Portege M700-10S, Portege M700-110, Portege M700-116, Portege M700-11F, Portege M700-11P, Portege M700-121, Portege M700-123, Portege M700-12J, Portege M700-130, Portege M700-133, Portege M700-139, Portege M700-13A, Portege M700-13B, Portege M700-13P, Portege M700-3G11F, Portege M700-3G13B, Portege M700-E260T, Portege M700-S7001X, Portege M700-S7002, Portege M700-S7003V, Portege M700-S7003X, Portege M700-S7004V, Portege M700-S7004X, Portege M700-S7005V, Portege M700-S7005X, Portege M700-S7008, Portege M700-S7008X, Portege M700-S7043V, Portege M700-S7043X, Portege M700-S7044V, Portege M700-S7044X, Portege M700-SP1801, Portege M700-SP1802, Portege M700/026022GR, Portege M800-10A, Portege M800-10D, Portege M800-D330P, Portege M800-D330W, Portege M800-E3315W, Portege R300-MD2, Portege R400-00H00L, Portege R400-100, Portege R400-101, Portege R400-103, Portege R400-104, Portege R400-106, Portege R400-108, Portege R400-10B, Portege R400-10D, Portege R400-S4831, Portege R400-S4832, Portege R400-S4833, Portege R400-S4834, Portege R400-S4835, Portege R400-S4931, Portege R400-S4932, Portege R400-S4933, Portege R400/00G00NGR, Portege R500-E262T, Qosmio F30-131, Qosmio F30-140, Qosmio F30-143, Qosmio F30-146, Qosmio F30-147, Qosmio F30/02200M, Qosmio F30/02400M, Qosmio F30/83C, Qosmio F40-ST4101, Qosmio F40/85C, Qosmio F40/86DBL, Qosmio F40/87C, Qosmio F40/87CBL, Qosmio F40/87DBL, Qosmio F40/88DBL, Qosmio F45-AV410, Qosmio F45-AV411, Qosmio F45-AV412, Qosmio F45-AV413, Qosmio F45-AV423, Qosmio F45-AV425, Qosmio F45-SP4057, Qosmio G30-102, Qosmio G30-103, Qosmio G30-105, Qosmio G30-107, Qosmio G30-10B, Qosmio G30-10C, Qosmio G30-10E, Qosmio G30-10G, Qosmio G30-10H, Qosmio G30-10I, Qosmio G30-116, Qosmio G30-117, Qosmio G30-126, Qosmio G30-134, Qosmio G30-137, Qosmio G30-138, Qosmio G30-139, Qosmio G30-140, Qosmio G30-143, Qosmio G30-145, Qosmio G30-147, Qosmio G30-148, Qosmio G30-150, Qosmio G30-151, Qosmio G30-153, Qosmio G30-155, Qosmio G30-158, Qosmio G30-161, Qosmio G30-162, Qosmio G30-163, Qosmio G30-175, Qosmio G30-176, Qosmio G30-177, Qosmio G30-178, Qosmio G30-179, Qosmio G30-182, Qosmio G30-187, Qosmio G30-188, Qosmio G30-190, Qosmio G30-191, Qosmio G30-194, Qosmio G30-198, Qosmio G30-200, Qosmio G30-201, Qosmio G30-204, Qosmio G30-205, Qosmio G30-207, Qosmio G30-209, Qosmio G30-210, Qosmio G30-212, Qosmio G30-213, Qosmio G30-215, Qosmio G30-219, Qosmio G30-220, Qosmio G30-223, Qosmio G30-3012E, Qosmio G30-3142T, Qosmio G30-AV4, Qosmio G30-AV6, Qosmio G30-HD2, Qosmio G30-P3042T, Qosmio G30-P650 / G30-P650T, Qosmio G30/01Q01J, Qosmio G30/01Y01F, Qosmio G30/02V01W, Qosmio G35-AV650, Qosmio G35-AV660, Qosmio G40-108, Qosmio G40-10E, Qosmio G40-10P, Qosmio G40-10Q, Qosmio G40-10S, Qosmio G40-10Z, Qosmio G40-111, Qosmio G40-114, Qosmio G40-11D, Qosmio G40-11L, Qosmio G40-11P, Qosmio G40-11Z, Qosmio G40-127, Qosmio G40-129, Qosmio G40-12A, Qosmio G40-12C, Qosmio G40-12F, Qosmio G40-12J, Qosmio G40-12S, Qosmio G40-12T, Qosmio G40-HD731T, Qosmio G40-MM1, Qosmio G40-P730, Qosmio G40-P730T, Qosmio G40/95C, Qosmio G40/97C, Qosmio G40/97D, Qosmio G45-AV680, Qosmio G45-AV690, Satego A100-00C, Satego P100-10F, Satego P100-10U, Satego P100-490, Satego P100-491, Satego P200-15U, Satego P200-16W, Satego X200-20J, Satego X200-20O, Satego X200-21D, Satego X200-21L, Satego X200-21U, Satego X200-21V, Satellite 200-140, Satellite A100-002, Satellite A100-003, Satellite A100-00A, Satellite A100-011, Satellite A100-012, Satellite A100-018, Satellite A100-01L, Satellite A100-01Q, Satellite A100-028, Satellite A100-029, Satellite A100-02B, Satellite A100-030, Satellite A100-036, Satellite A100-041, Satellite A100-042, Satellite A100-050, Satellite A100-052, Satellite A100-068, Satellite A100-083, Satellite A100-087, Satellite A100-088, Satellite A100-090, Satellite A100-091, Satellite A100-093, Satellite A100-097, Satellite A100-0FH, Satellite A100-1011E, Satellite A100-1021E, Satellite A100-110, Satellite A100-111, Satellite A100-114, Satellite A100-118038, Satellite A100-121, Satellite A100-133, Satellite A100-138, Satellite A100-1401E, Satellite A100-149, Satellite A100-162, Satellite A100-172, Satellite A100-197, Satellite A100-1HQ03R, Satellite A100-201, Satellite A100-2112E, Satellite A100-214, Satellite A100-2141T, Satellite A100-215, Satellite A100-216, Satellite A100-2212E, Satellite A100-277, Satellite A100-283, Satellite A100-289, Satellite A100-294, Satellite A100-3012E, Satellite A100-3022E, Satellite A100-3042T, Satellite A100-308, Satellite A100-309, Satellite A100-3112E, Satellite A100-317, Satellite A100-334, Satellite A100-376, Satellite A100-383, Satellite A100-386, Satellite A100-405, Satellite A100-409, Satellite A100-410, Satellite A100-411, Satellite A100-412, Satellite A100-436, Satellite A100-437, Satellite A100-442, Satellite A100-451, Satellite A100-454, Satellite A100-467, Satellite A100-474, Satellite A100-480, Satellite A100-483, Satellite A100-487, Satellite A100-489, Satellite A100-490, Satellite A100-491, Satellite A100-493, Satellite A100-495, Satellite A100-496, Satellite A100-497, Satellite A100-499, Satellite A100-504, Satellite A100-530, Satellite A100-547, Satellite A100-567, Satellite A100-586, Satellite A100-589, Satellite A100-599, Satellite A100-619, Satellite A100-626, Satellite A100-632, Satellite A100-643, Satellite A100-644, Satellite A100-646, Satellite A100-655, Satellite A100-667, Satellite A100-676, Satellite A100-682, Satellite A100-683, Satellite A100-688, Satellite A100-691, Satellite A100-694, Satellite A100-703, Satellite A100-704, Satellite A100-712, Satellite A100-718, Satellite A100-720, Satellite A100-730, Satellite A100-732, Satellite A100-733, Satellite A100-749, Satellite A100-763, Satellite A100-771, Satellite A100-773, Satellite A100-775, Satellite A100-777, Satellite A100-784, Satellite A100-785, Satellite A100-786, Satellite A100-787, Satellite A100-793, Satellite A100-796, Satellite A100-803, Satellite A100-819, Satellite A100-881, Satellite A100-906, Satellite A100-914, Satellite A100-920, Satellite A100-924, Satellite A100-925, Satellite A100-926, Satellite A100-956, Satellite A100-969, Satellite A100-989, Satellite A100-991, Satellite A100-992, Satellite A100-994, Satellite A100-998, Satellite A100-999, Satellite A100-P530, Satellite A100-P540, Satellite A100-P542, Satellite A100-P543, Satellite A100-P545, Satellite A100-SK4, Satellite A100-SK8, Satellite A100-SK9, Satellite A100-ST1042, Satellite A100-ST8211, Satellite A100-TA1, Satellite A100-TA2, Satellite A100-TA4, Satellite A100-TA6, Satellite A100-TA7, Satellite A100-TA9, Satellite A100-VA5, Satellite A100-VA7, Satellite A100-VA9, Satellite A100-WA7, Satellite A100/04E005, Satellite A100/054007, Satellite A100/055007, Satellite A100/057007, Satellite A100/0CU004, Satellite A100/0GF010, Satellite A105-S4024, Satellite A105-S4092, Satellite A105-S4102, Satellite A105-S4104, Satellite A105-S4114, Satellite A105-S4124, Satellite A105-S4132, Satellite A105-S4134, Satellite A105-S4154, Satellite A105-S4164, Satellite A105-S4201, Satellite A105-S4204, Satellite A105-S4211, Satellite A105-S4214, Satellite A105-S4244, Satellite A105-S4254, Satellite A105-S4274, Satellite A105-S4284, Satellite A105-S4324, Satellite A105-S4334, Satellite A105-S4342, Satellite A105-S4344, Satellite A105-S4364, Satellite A105-S4384, Satellite A105-S4397, Satellite A105-S4547, Satellite A105-S45472, Satellite A105-SP2011, Satellite A105-SP4021, Satellite A105-SP4031, Satellite A110-153, Satellite A110-159, Satellite A110-169, Satellite A110-179, Satellite A110-212, Satellite A110-274, Satellite A110-275, Satellite A110-277, Satellite A110-289, Satellite A110-352, Satellite A110-370, Satellite A110-381, Satellite A130-ST1312, Satellite A135-S4427, Satellite A135-S4437, Satellite A135-S4447, Satellite A135-S4457, Satellite A135-S4467, Satellite A135-S4477, Satellite A135-S4478, Satellite A135-S4487, Satellite A135-S4488, Satellite A135-S4498, Satellite A135-S4499, Satellite A135-S4517, Satellite A135-SP4016, Satellite A135-SP4036, Satellite A135-SP4048, Satellite A135-SP4058, Satellite A135-SP4088, Satellite A135-SP4108, Satellite A135-SP4116, Satellite A135-SP4138, Satellite A135-SP4146, Satellite A135-SP5820, Satellite A200-014, Satellite A200-01C, Satellite A200-01K, Satellite A200-01W, Satellite A200-01X, Satellite A200-020, Satellite A200-02C, Satellite A200-02H, Satellite A200-02J, Satellite A200-02L, Satellite A200-03J, Satellite A200-03M, Satellite A200-03V, Satellite A200-05U, Satellite A200-06V, Satellite A200-08J, Satellite A200-09V, Satellite A200-0CQ, Satellite A200-10V, Satellite A200-10W, Satellite A200-10X, Satellite A200-10Z, Satellite A200-11C, Satellite A200-12Q, Satellite A200-12S, Satellite A200-12V, Satellite A200-12X, Satellite A200-13L, Satellite A200-13M, Satellite A200-13O, Satellite A200-13R, Satellite A200-13T, Satellite A200-13U, Satellite A200-13V, Satellite A200-14D, Satellite A200-14E, Satellite A200-14V, Satellite A200-14X, Satellite A200-16V, Satellite A200-174, Satellite A200-17O, Satellite A200-17S, Satellite A200-17X, Satellite A200-17Z, Satellite A200-180, Satellite A200-18M, Satellite A200-18T, Satellite A200-18V, Satellite A200-18W, Satellite A200-191, Satellite A200-192, Satellite A200-193, Satellite A200-195, Satellite A200-19C, Satellite A200-19I, Satellite A200-19K, Satellite A200-19M, Satellite A200-19P, Satellite A200-1A9, Satellite A200-1AA,

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #12 kdy: 13-07-2016, 08:11:28 »
Síce neviem načo to je dobré, ale keď vidím niečo podobné, tak idem do mdlôb :o
Ja by som to rozhodil do dvoch, možno troch, tabuliek. Niečo také by ma nenapadlo ani v zlom sne ;D
Rád by som vedel čo viedlo autora k takémuto nezmyslu ???
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #13 kdy: 13-07-2016, 08:39:32 »
Síce neviem načo to je dobré, ale keď vidím niečo podobné, tak idem do mdlôb :o
Ja by som to rozhodil do dvoch, možno troch, tabuliek. Niečo také by ma nenapadlo ani v zlom sne ;D
Rád by som vedel čo viedlo autora k takémuto nezmyslu ???
Ona je to taky nebetycna p*covina. Takhle se s daty proste nepracuje.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #14 kdy: 13-07-2016, 08:50:00 »
Ja som slušne vychovaný človek :)  Vulgarizmy nepoužívam. Ale tu som s tým tvrdo bojoval.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #15 kdy: 14-07-2016, 00:13:57 »
no ja za to nemôžem, ale musel som vám to ukázať, aj ked je to len polovica dat (cele to ma 50kB), to je údaj z cenníka o kompatibilite danej baterky ... ale tu informaciu potrebujem..aby som vhľadal tu správnu

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #16 kdy: 14-07-2016, 05:17:36 »
Ale to je v pořádku. Potíž je v tom, že ji ukládáš blbě. Tohle patří do (textového) BLOBu, ne do VARCHARu, ještě navíc indexovaného! Pokud to vysloveně potřebuješ prohledávat, tak do extra tabulky se vztahem 1:N ke zboží.

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #17 kdy: 14-07-2016, 05:56:58 »
Když tak o tom uvažuju, asi radši M:N.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #18 kdy: 14-07-2016, 07:45:03 »
no ja za to nemôžem, ale musel som vám to ukázať, aj ked je to len polovica dat (cele to ma 50kB), to je údaj z cenníka o kompatibilite danej baterky ... ale tu informaciu potrebujem..aby som vhľadal tu správnu
Hmm, a kde je napsano, ze s nim mas zachazet jako s jednim zmolkem  dat :o

Proste takhle s daty pracuje snad nejaka sekretarka ev. PHP strikac, kteri si pod pojmem databaze dokazi predstavit max. excelovskou tabulku...

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #19 kdy: 14-07-2016, 20:21:38 »
vychádza mi z tohoto, že to rozsekám na 1000 znakov ktore ide indexovat, len budem musieť dávat pri tom pozor, na rozseknuté slová, a ako uvažujem tak uvažujem, aj tak je to komplikácia, dostal som aj radu rozsekať to na slová, zdá sa mi to implementačne najčistejšie, ale zase zisťovať či tam už to slovo je a riešiť spojovaciu tabuľku, sa mi až tak dobré nezdá.... tak stále neviem ako to vo firebirde najvýhodnejšie poriešiť, exisstuje na to nejaká odpoveď?

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #20 kdy: 14-07-2016, 20:24:49 »
alebo to tam mlátiť hlava nehlava, len s okazom na zdroj, a pred každým novým impotom to deletovať?

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1262
  • Karma: 51
    • Verze Delphi: 10.3
Re:Sklamanie z "bohyne"
« Odpověď #21 kdy: 14-07-2016, 20:26:40 »
Rozsekat na jednotlivé notebooky. Nemá smysl z toho dělat "indexovatelné" 1000znakové položky, protože to ničemu nepomůže (index by se uplatnil, když by se hledaly záznamy, ve kterých to políčko začíná určitým textem, nikoliv které obsahují text uvntiř). Tj. správnější bude, mít tabulku-číselník, kde ke každému notebooku budeš mít přidělené číselné ID. A pak další tabulku, která bude propojovat jednotlivé baterie (číselné ID) s notebooky, do kterých pasuje.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #22 kdy: 14-07-2016, 20:35:19 »
Citace
alebo to tam mlátiť hlava nehlava, len s okazom na zdroj, a pred každým novým impotom to deletovať?
Tým si ma teraz dostal. Treba zmeniť aj spôsob zápisu údajov.
Ak máš len jediný takýto prípad, tak by som to rozbil na tabuľky (pokiaľ si dobre pamätám údaje)

- Výrobca
- Skupina NB
- Typy NB
- Batérie
- Prepojovacia tabuľka M:N TypyNB_Baterie

S takouto štruktúrou DB potom môžeš robiť menšie zázraky. Rôzne prehľady, štatistiky...
Trocha to potrvá, ale stojí to zato. Ja by som si to hodil to texťáka a tam to rozsekal na riadky. Na nejaký parser nemám ;)
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #23 kdy: 14-07-2016, 20:44:13 »
Aby si nepovedal. Robota na 2 minúty. V prílohe to máš na riadky. PSPad a zameniť čiarky za "nový riadok"
Môžeš z toho urobiť csv súbor, alebo to hodiť do excelu. To všetko sa dá pekne importovať do tabuľky.
S dodatočnými ručnými úpravami to musíš zmaknuť za pol dňa. Potom 8)
« Poslední změna: 14-07-2016, 20:46:40 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #24 kdy: 14-07-2016, 22:29:16 »
Na nejaký parser nemám ;)
Na to (co jsi poslal) staci instance TStringList, nastavit ji Delimiter na carku a ten zmolek textu strcit do DelimitedText. A mas seznam radku a ty radky rozbit je obdobne jednoducha uloha.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #25 kdy: 14-07-2016, 22:34:41 »
rozsekať to na slová
Jenomze to bylo v kontextu, kdy jsi nam tvrdil, ze potrebujes prohledavat fulltextove text a nepochlubil ses, ze tak prasacky chces obchazet navrh normalizovaneho DB schematu a import toho zmolku dat do nej >:(

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #26 kdy: 15-07-2016, 05:58:50 »
vychádza mi z tohoto, že to rozsekám na 1000 znakov ktore ide indexovat,
Já to vzdávám. V původním blbém řešení indexování nefunguje, tak zvolíš ještě horší řešení, které technicky vzato indexovat půjde, ale index v něm nebude mít žádný význam pro rychlé vyhledávání. Rady, jak to udělat správně, jsi dostal, přesto si stále meleš svou. To se ale pak nediv, že ti databáze hází klacky pod nohy.

Citace
dostal som aj radu rozsekať to na slová, zdá sa mi to implementačne najčistejšie, ale zase zisťovať či tam už to slovo je a riešiť spojovaciu tabuľku, sa mi až tak dobré nezdá....
No to není. Radu rozdělení na slova jsi dostal v době, kdy jsi tvrdil, že ti jde o fulltext. Tobě ale nejde o fulltext ale o vyhledávání záznamů obsahujících konkrétní příznak (není podstatné, že příznak není jedno slovo ale sousloví).

Citace
exisstuje na to nejaká odpoveď?
Odpověď je, uvědom si, co děláš, a pak na to použij nástroj, který je na tu věc určený. V tvém případě vztah M:N mezi tabulkou baterií a tabulkou modelů notebooků.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #27 kdy: 15-07-2016, 08:35:03 »
na upresnenie, tie data sú v podstate podrobný popis produktov,
ako som písal v http://forum.delphi.cz/index.php/topic,15318.0.html
s miernou úpravou
mam DB s cca 280.100 záznamov
s dĺžkou 1-5000 má cca 279.000 záznamov
s dĺžkou 5.000-10.000 má cca 1000 záznamov
s dĺžkou 10.000-50.000 má cca 100 záznamov
prehľadáva sa ešte názov produktu ale ten má do 150 znakov...
+part number, distributor, kod sklad, ean, výrobca

nie sú to len baterky ...

ale podstatná informácia je, že potrebujem nájsť len záznamy, v ktorých sa to nachádza, takže to skúsim takto:
uložím si aj cely text, ale len pre potreby zobrazenia, nie pre vyhľadávanie, a rozsekám to na slová so spojovacou tabuľkou a toto zaindexujem
je to takto OK? dám potom report, ako to dopadlo

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #28 kdy: 15-07-2016, 09:16:31 »
ale podstatná informácia je, že potrebujem nájsť len záznamy, v ktorých sa to nachádza,
Jenomze z tebe popis problemu leze jak z chlupate deky :(

Podstatna informace je, CO a KDE potrebujes hledat. A teprve pak muzes definovan nejake DB entity a zpusob prace s nimi.

Snad srozumitelny priklad je adresa - pokud ji budes napr. jen zobrazovat, staci ji nacpat celou do jednoho pole a jejim formatem se prilis nezabyvat a snad ji prohledavat pomoci LIKE. To je nejspis to, o co se snazis s tim rozdilem, ze adresa je kratka a jeji casti nevytvareji nazvajem mnoho nejednoznacnosti.

Ale uz v okamziku, kdy nebudes chtit udelat flat tabulku a mit v ni duplicity adres a jeste v ruznem nekanonickem formatu, tak bys ji potreboval vyclenit do extra entity v nejakem kanonizovanem tvaru a uz tam by ses dostal do obrovskych, rekl bych strojove jen obtizne resitelnych problemu.

A pokud s ni potrebujes pracovat napr. vypisovat vsechny zaznamy se stejnym PSC, lide ve stejne ulici, dome apod. budes muset tu adresu rozdelit na entity. A to se neobejde bez porozumeni obsahu, kanonizaci dat (co je spatne udelanych systemu, kde programator definoval, ze cislo domu je napr. integer, takze neni schopen vkladat do DB cisla domu napr. 13a nebo 02 (2 = cislo orientacni ev. popisne, 02 = cislo evidencni a v jedne obci mohou existovat vsechna=> analytik/programator o dane problematice vedel kulovy a vysledek tomu odpovida).

Takze pokud chces poradit, tak nejdriv laskave definuj poradne svuj problem, jinak je to ztrata casu pro vsechny zucastnene.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #29 kdy: 15-07-2016, 10:50:03 »
Osobne si myslím, že už má dostatok informácii nato, aby sa mohol rozhodnúť. Len si musí spočítať všetky + a -.

1 - musí úplne prepracovať štruktúru DB
2 - prekonvertovať existujúce údaje do novej DB
3 - z toho vyplýva zmena práce s DB a tvorba nových formulárov
4 - prácnosť, čas
5 - má na to čas a prostriedky?

Osobne Ti Feri odporúčam zobrať papier (aspoň A3 :) ) a tam si to všetko písomne a graficky hodiť. Budeš mať jednoznačne lepšiu orientáciu v probléme.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2973
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Sklamanie z "bohyne"
« Odpověď #30 kdy: 15-07-2016, 10:55:37 »
no ja za to nemôžem, ale musel som vám to ukázať, aj ked je to len polovica dat (cele to ma 50kB), to je údaj z cenníka o kompatibilite danej baterky ... ale tu informaciu potrebujem..aby som vhľadal tu správnu
Hmm, a kde je napsano, ze s nim mas zachazet jako s jednim zmolkem  dat :o

Proste takhle s daty pracuje snad nejaka sekretarka ev. PHP strikac, kteri si pod pojmem databaze dokazi predstavit max. excelovskou tabulku...

Od jiste doby si myslim, ze na takovy typ dat je idealni NoSQL databaze, ktera presne odpovida zadani: tj. nekanonizovane data ruzneho obsahu jako popisy a charakteristika zbozi, nebo napr. popisy projektu na SF.NET.
Ale zatim jsem si to nestihl vyzkouset, takze nejsem si jist jak moc je to idealizovana predstava autoru.

Embarcadero MVP - Czech republic

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #31 kdy: 15-07-2016, 12:41:11 »
radek, NoSQL databaze som po tovojom prispevku tiez omrkol... ale zatial nic

stanislav, nemusim nic pre precovat a ni prekonvertovat
kazdy den to robi import  nanovo (delete all -> insert)

jedna sa o jeden stlpcek z 36 ... ktory tam vlastne zostane, len mi pribudnu dve tabulky a nejaka logika
v tomto momente ma este zaujima ci je rozdiel ukladat 50.000 varchar alebo pouzit blob, ma to nejake vyhody?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #32 kdy: 15-07-2016, 16:09:27 »
Vychádzam z diskusie. S blobom nevieš robiť a bude to problém. Riešenie by asi bolo komplikované. Ktovie či aj nie pomalé.
Uložiť 50 000 záznamov nie je až taká záťaž. Nemám osobnú skúsenosť, ale nepredpokladám viac ako nejaká tá minúta. Práca potom bude lahoda.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 423
  • Karma: 5
Re:Sklamanie z "bohyne"
« Odpověď #33 kdy: 15-07-2016, 18:34:19 »
Hloupá reakce na hloupé téma:
Františka zklamal 'Ohnivý pták' na 'bohyni', ale 'Ohnivého ptáka' 'bohyně' zklamal naopak František.  ;)  ;D

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #34 kdy: 16-07-2016, 10:21:06 »
Od jiste doby si myslim, ze na takovy typ dat je idealni NoSQL databaze
No, s myslenkou vyzkouset nejakou NoSql DB si pohravam uz leta, rad bych nejakou objektovou jako Db4o ci Cache, ale nenasel jsem odvahu jit do toho po hlave v nejakem realnem projektu a na hrani nemam cas ani prostor k alternativnimu reseni v pripade, ze bych se dostal do slepe ulicky.

Me uplne ke stesti staci, ze jsem se pro posledni velky projekt odhodlal pouzit na vsechno ORM nad MSSQL s nativnim MS Entity Frameworkem a musim rict, ze jsem si tim dost nadrobil (a to ten EF uz je ve verzi 6, takze netrpi detskymi neduhy). Kdyz jsem se rozhodoval, tak jsem vedel, ze v projektu budou operace, pro ktere neni ORM vhodny, ale predpokladal jsem, ze je dokazu obejit.  A obesel jsem (za cenu napr. rozbiti bulk operaci do davek, extra zpusobem prace s change trackerem, pouzitim raw sql operaci na kriticke operace a obchazeni change trackeru aj).
Intuitivne citim, ze se pohybuji lehce za hranici aplikovatelnosti technologie ORM v danem typu projektu, nehlede na pracnost a narocnost pri vymysleni, proc neco nefunguje a jak to obejit.

V mych pocatcich s DB me desne stvala rigidita ER modelovani, tak jsem zkousel nad ER RDBMS udelat entity-attribute model. Flexibilni to bylo, to ano, takze cil zbavit se rigidity byl dosazen, ale vykon velmi mizerny a v praxi nepouzitelny a generator SQL hnusne slozity. Tenkrat jsem mel ale prostor pro nejake protypovani, ktere skoncilo nezdarem a ja se pokorne zaclenil do sveta relacnich DB.

V prakticke aplikaci tech NoSql vidim hlavni problem v tom, ze jsou vetsinou docela uzce specializovane na pomerne malou mnozinu operaci. No a byt donucen pouzit vice RDMDBS v jednom projektu, to taky neni zadna slava a je to dost pracne na udrzbu (meli jsme rodinu aplikaci, kde klienti pouzivali Sqlite a ta byla synchronizavana s nejakou obecnou DB na serveru a byl do docela humus to udrzovat a delat v tom zmeny, dopady do navrhu (clovek musel zapomenout na integer coby klic)).

Zkratka, ja uz se zrejme k NoSql nedostanu, i kdyz bych to chtel docela videt nasazene na nejakem problemu, o kterem bych mel jasnou predstavu, co se musi resit a srovnat si to s NoSql pristupem.





Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #35 kdy: 17-07-2016, 22:54:36 »
stastanislav, to nie  je 50.000 zaznamovale 50.000 char jeden zaznam, zaznmov j ecca 280.000

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #36 kdy: 18-07-2016, 10:57:06 »
to snáď nie je možné, ďalšie obmedzenie FB, max varchar 8.000 (unicode 4.000), takže musim do blobu

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #37 kdy: 18-07-2016, 11:34:34 »
to snáď nie je možné, ďalšie obmedzenie FB, max varchar 8.000 (unicode 4.000), takže musim do blobu
To neni omezeni FB ale TDatasetu viz unit DB:
Kód: Delphi [Vybrat]
  1.   dsMaxStringSize = 8192; { Maximum string field size }
  2.  

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5976
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Sklamanie z "bohyne"
« Odpověď #38 kdy: 18-07-2016, 11:35:25 »
Citace
stastanislav, to nie  je 50.000 zaznamovale 50.000 char jeden zaznam, zaznmov j ecca 280.000
To som si neuvedomil. Presnejšie, nepoznám štruktúru DB. Tak som urobil zlú úvahu. Ale my stále nevieme, či sa jedná o jednorázovú akciu, alebo opakovanú.
Podľa všetkého sa jedná o denne opakovanú akciu. Jedna možnosť je to všetko vymazať a znova nahrať, ako to máš teraz.
Druhá možnosť je to komplet prekopať a robiť to poriadne. To znamená ukladať parsované údaje do samostatných tabuliek - nie dlhý text do Blob-u. V tom prípade by si ukladal iba zmeny.

Lenže mi máme mizerné informácie na to, aby sme mohli akokoľvek pomôcť. Myslím, že sa tu za daných podmienok urobil už maximum.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #39 kdy: 18-07-2016, 11:37:43 »
to snáď nie je možné, ďalšie obmedzenie FB, max varchar 8.000 (unicode 4.000), takže musim do blobu
Jinak to neni nic neobvykleho: string je string a ne text/blob. Z tech beznych DB nebude prostestovat akorat Sqlite, protoze ta si na staticke typy nehraje a vsechno ma ulozeno jako ASCIIZ string tudiz bez deklarovane velikosti pole.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #40 kdy: 18-07-2016, 11:41:37 »
to pf1957: http://www.firebirdsql.org/en/firebird-technical-specifications/ opravujem ..obmedzenie na 32768...ale aj tak je to malo

to Stanislav: prosím ťa, prečítaj si diskusiu, je to tam

Citace
mam DB s cca 280.100 záznamov
s dĺžkou 1-5000 má cca 279.000 záznamov
s dĺžkou 5.000-10.000 má cca 1000 záznamov
s dĺžkou 10.000-50.000 má cca 100 záznamov
prehľadáva sa ešte názov produktu ale ten má do 150 znakov...

a

Citace
stanislav, nemusim nic pre precovat ani prekonvertovat
kazdy den to robi import  nanovo (delete all -> insert)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #41 kdy: 18-07-2016, 11:45:50 »
Excellent
Rated 1 time
to pf1957: http://www.firebirdsql.org/en/firebird-technical-specifications/ opravujem ..obmedzenie na 32768...ale aj tak je to malo

Ne, to neni malo, akorat ty sis usmyslel, ze se budes neustale pokouset o p*coviny.

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1558
  • Karma: 37
    • Pepak.net
Re:Sklamanie z "bohyne"
« Odpověď #42 kdy: 18-07-2016, 14:52:19 »
Proboha, Františku. Už mě unavuje tu pořád znovu číst tvoje stížnosti na databázi, protože nechce přijmout tvůj špatný přístup. Ušetři sobě i nám nervy a použij SQLite, kterému to je z principu jeho implementace jedno a ty tvoje prasárny ti dovolí. Budeš spokojený, že ti to funguje, a my nebudeme muset číst hovadiny, protože si nedáš říct, abys to udělal správně. Díky.

Offline František

  • Guru
  • *****
  • Příspěvků: 704
  • Karma: 7
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Sklamanie z "bohyne"
« Odpověď #43 kdy: 18-07-2016, 15:52:51 »
síce stále neviem čo je to to správne, ale dnes večer to skúsim implementovať a dám report ;)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3287
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Sklamanie z "bohyne"
« Odpověď #44 kdy: 18-07-2016, 17:03:08 »
síce stále neviem čo je to to správne, ale dnes večer to skúsim implementovať a dám report ;)
Mas asi 3 moznosti:
  • pouzit nejakou nonSql DB (pokud mas cas a chut experimentovat)
  • pouzit fulltext (s ohledem na to, ze se nejedna o text, ale v podstate seznamy nejakych kodu, tak bych to nedoporucoval
  • porozumet obsahu polozek, navrhnout ER model, polozky rozparsovat a nacpat do toho modelu a vhodne sestavit SQL dotazy. To je tradicni postup.