Autor | Zpráva | ||
---|---|---|---|
blaaablaaa Profil |
#1 · Zasláno: 1. 9. 2010, 14:29:22
Ahoj,
mam MSSQL tabulku s nekolika sty tisici/miliony produktu. Ta musi byt abecedne razena, proto ji v noci seradim a ulozim si ke kazdemu zaznamu jeho poradi. Toto poradi pak pouzivam pri razeni i strankovani. Problem vsak nastava, kdyz chci vlozit novy produkt, kdy nevim, co mu ulozit do poradi: - 0 - zaradi se na zacatek, nerazene, vice vyrobku znemozni strankovani - MIN-1 - zaradi se na zacatek, nerazene - MAX+1 - zaradi se na konec, nerazene - NULL - nebudu vypisovat vubec - dopocitat priblizne umisteni v poradi - tady se mi bohuzel nedari sestavit spravny algorytmus pro prepocet Mohli byste me nekdo nasmerovat ci poradit reseni? Diky |
||
Kajman_ Profil * |
#2 · Zasláno: 1. 9. 2010, 16:17:07
dopocitat priblizne umisteni v poradi - tady se mi bohuzel nedari sestavit spravny algorytmus pro prepocet
select count(*)+1 as priblizne_poradi from tabulka where nazev<'Nazev vkladaneho' S tím, že bez indexu na sloupci, podle kterého se to abecedně řadí (v prikladu nazev), to bude až moc pomalé. |
||
blaaablaaa Profil |
#3 · Zasláno: 2. 9. 2010, 08:02:29
Kajman:
Ja se bojim, ze tohle bude pomale i s indexem, bohuzel mam ted v db jen par tisic zaznamu, tak to nemam na cem otestovat. |
||
Kajman_ Profil * |
Vytvořte si testovací tabulku s očekávaným počtem řádků.
Dalším pokusem by mohlo být něco jako select top 1 poradi poradi_dalsiho from tabulka where nazev>'Nazev vkladaneho' order by nazev |
||
blaaablaaa Profil |
#5 · Zasláno: 2. 9. 2010, 10:55:31
Kajman:
Diky, mam v tabulce ulozeno jeste prvni pismeno nazvu, cimz se to jeste urychli. Jeste jsem mel problem se situaci, kdy uzivatel vlozi napr. 20 vyrobku se stejnym nazvem (tzn. budou mit stejnou hodnotu poradi), coz jsem vyresil podminkou overujici, zda ma prvni a posledni prvek výběru stejnou hodnotu poradi - pokud ano, navysi ji o 1 (cimz se sice nemusi zobrazit vsechny produkty - pokud je vice stejnych poradi nez pocet polozek na strance, ale strankovani si zachova funkcnost). Diky |
||
Kajman_ Profil * |
#6 · Zasláno: 2. 9. 2010, 11:08:03
mam v tabulce ulozeno jeste prvni pismeno nazvu, cimz se to jeste urychli.
Více podmínek to může občas i zpomalit, to zrychlení tušíte, nebo jste ho změřil? |
||
Časová prodleva: 14 let
|
0