Výpočty z view nebo tabulek?   zodpovězená otázka

SQL

Zdravím, prosím o radu jak mám správně postupovat. Dělám databázovou aplikaci (databáze MS SQL 2000) a mimo jiné nastavuji určité výpočty (konkrétně se jedná o výpočet pojistného) které jsou celkem komplikované. Je zde několik faktorů které částku ovlivňují, jsou zde nějáké sazebníky a koeficienty na které se odkazuji atd. Výpočty nastavuji v T-SQL, budou se provádět automaticky pomocí Jobů.

A teď k věci. Na začátku mi přišlo více "čisté" výpočty provádět přímo z tabulek, tedy nepoužívat views. Jsem ale na začátku, a kód výpočtu je "lehce" nepřehledný. Je zde spoustu závorek, selectů, joinů apod. kterými se odkazuji na tabulky kde mám potřebná data. Zprovoznit to sice není problém, ale radši nedomýšlím co se stane, až za rok někdo příjde s požadavek na (byť malou) změnu. Napadlo mě udělat si view kde bych měl všechny potřebná data, čímž by se kód procedur značně zjednodušil. Je ale toto použití view správné? Chtěl bych se vyvarovat nějákému programátorskému prohřešku kterého bych třeba později litoval;)

předem děkuji za reakce

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslím, že to je hodně individuální. Já osobně při složitých výpočtech preferuji čitelnost a přehlednost. A to i za cenu zpomalení.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

"A to i za cenu zpomalení" - to myslíte vážně? Ani si nedovedu představit kód, který by zvýšil čitelnost na úkor snížení výkonu...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Špatně jsem se vyjádřila, měla jsem na mysli nízké řády. Pokud mám mít kód nečitelný a uživatel bude mít výsledek do vteřiny anebo bude čekat vteřinu až dvě a já a mí kolegové se v kódu vyznají, pak volím pomalejší možnost. V případě velkých transakcí samozřejmě upřednostňuji rychlost.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Views nejsou tak zásadní zpomalení. I když SQL Server 2000 je už dost historická záležitost, každá databáze si dotazy dost optimalizuje.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, vím že to je letitá záležitost. Bohužel tohle je jedna z věcí které neovlivním. Musím pracovat s tím co mi IT oddělení poskytlo. Jinak jestli dotaz potrvá o pár sekund déle mi je celkem jedno. Tyto dotazy nebudou zobrazovat data uživatelům, ale pouze jednou měsíčně v noci, když nikdo s aplikací nebude dělat, vygenerují určitá data která uloži do tabulky.

Děkuji za reakce

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V tom případě použijte views, zpomalení je podle mě ani ne v řdu jednotek procent, ale nejsem DB expert, takže nevím.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Už jsem začal dotazy předělávat a opravdu zůstanu u view. V tomto případě hlavně kvůli přehlednosti. Jendak je hned zřejmé jak je výpočet postavený a tudíž případné změny a rozšíření nebudou problém a také vytváření dotazu je mnohem rychlejší.

Děkuji

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback