Výkon – MS SQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výkon – MS SQL – Fórum – Programujte.comVýkon – MS SQL – Fórum – Programujte.com

 

Michal
~ Anonymní uživatel
683 příspěvků
28. 4. 2013   #1
-
0
-

Dobrý den,

dělám inzertní server a dumám na tím, co bude mít lepší výkon.

Mám pár tabulek, řekněme Kategorie1(ta, do které budou vstupovat jiné) a pak Auta(49značek), Motorky(20značek), atd..

Jelikož v tabulce Kategorie1 můžu mít jen jeden PK, tak přede mnou stojí otázka, jak to udělat. Pomocí FK to jde, ale to bych musel v mém případě vytvořit asi 100tabulek. A nebo udělat to bez FK, prostě se jen jednoduše dotazovat pomocí inner join a porovnávat stejné sloupce, ale to mi přijde divné... Snad jsem to napsal alespoň trochu sorzumitelně. 

Díky.

Nahlásit jako SPAM
IP: 86.161.222.–
P
~ Anonymní uživatel
212 příspěvků
1. 5. 2013   #2
-
0
-

Nenapsal.

Nahlásit jako SPAM
IP: 83.240.80.–
RomanZ
~ Anonymní uživatel
272 příspěvků
2. 5. 2013   #3
-
0
-

Není to srozumitelné. Neumím z toho vůbec poznat, na co se ptáš.

Jesti můžu radit, nepřemýšlej jako první o struktuře tabulek (tím méně o nějakých optimalizacích). Ze všeho nejdříve si promysli, co (a proč) chceš v databázi evidovat a jaké jsou mezi evidovanými skutečnostmi vztahy. K tomu je dobré UML, ale postačí i slovní popis. Potom se zamysli, jak chceš tu evidenci používat - budou se ty záznamy zobrazovat v tabulce, půjdou nějak řadit, podle něčeho filtrovat, budou se nějak editovat? Kolik jich asi bude?

Teprve když toto víš, můžeš začít přemýšlet o struktuře DB a začít tvořit tabulky. Pokud Tě trápí výkon, můžeš si vytvořit více variant, naplnit je testovacími daty a zkoušet, která je lepší - jenže k tomu potřebuješ informace zmíněné v předchozím odstavečku. Pak se to dá optimalizovat, např. přidáním indexů, rozdělením nebo sloučením tabulek apod., ale ta optimalizace je až na konci, když máš úplně jasno co potřebuješ a jak to má fungovat.

Nyní je předpokládám jasné, proč Ti s Tvým původním dotazem nejsem schopen poradit.

Snad jen jedna věc: kde jsi vzal ten nápad na 100 tabulek? Snad ne že bys měl pro každé auto samostatnou tabulku?

Nahlásit jako SPAM
IP: 90.176.60.–
Michal
~ Anonymní uživatel
683 příspěvků
3. 5. 2013   #4
-
0
-

Děkuju za reakci.

S těmi tabulkami jsem to myslel tak, že mám 15 kategorií(auta, pc, zahrada apod..). Třeba kategorie automoto má tabulky auta, aznacka a autaprislusenstvi + další, ale pro příklad uvedu jen tyhle 3. V "auta" je ID a nazev znacky. V "aznacka" je vse ostatni, tzn jmeno, datum, atd., proste vše co se dává do inzerátu. A já to mám vyřešené tak, že v tabule aznacka mám FK do tabulky auta, který je spojený se sloupcem ID. Tzn., že v tabulce auta mám takovéto hodnoty: ID1 = audi, ID2 = BMW atd., je jich celkem 49. A když se ukládá záznam do tabulky aznacka, tak se tam váže sloupec značka s ID z tabulky auta... Pro výpis je použitý inner join where ID = ID. Takhle to funguje dobře, jen nevím, jestli to bude dobré i na výkon:) Ale máš pravdu, že to se dělá až na konci.

Nahlásit jako SPAM
IP: 86.161.222.–
RomanZ
~ Anonymní uživatel
272 příspěvků
3. 5. 2013   #5
-
0
-

To, co jsi popsal, je úplně standardní použití cizího klíče, který odkazuje do nějakého číselníku. To je správné řešení a problém s výkonem v tomhle místě nepředpokládám.

Nahlásit jako SPAM
IP: 90.176.60.–
Calvary0
Newbie
3. 5. 2013   #6
-
0
-

Ok, děkuju.

Nahlásit jako SPAM
IP: 86.161.222.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Prodej výkon svého PC — založil paulending

HW - vykon grafika karty — založil Stano

Automatická serializace a výkon — založil Honza Jebavý

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý