Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

materialized views ko ms sql servera

[es] :: MS SQL :: materialized views ko ms sql servera

[ Pregleda: 2584 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
...129.89-dsl.net.metronet.hr.



+19 Profil

icon materialized views ko ms sql servera13.07.2009. u 17:56 - pre 179 meseci
pitanje je postavljeno i na oracle temi za oracle bazu, ali ovdje imam drugo pitanje.

Code:
create VIEW racuni1
WITH SCHEMABINDING
AS SELECT     dbo.proizvodi.ID, dbo.proizvodi.ime, dbo.proizvodi.cijena, SUM(dbo.racuni.kolicina) AS Expr1, 
                         SUM(dbo.racuni.kolicina * dbo.proizvodi.cijena) AS Expr2
FROM         dbo.racuni INNER JOIN
                    dbo.proizvodi ON dbo.racuni.ID_proizvodi = dbo.proizvodi.ID
group by dbo.proizvodi.ID, dbo.proizvodi.ime, dbo.proizvodi.cijena
GO



kad probam ovo izvršiti

Code:
create UNIQUE CLUSTERED INDEX ix_bbb ON racuni1(ID)
GO


dobijem grešku

Cannot create index on view 'marko.dbo.racuni1' because its select list does not include a proper use of COUNT_BIG. Consider adding COUNT_BIG(*) to select list.

u čemu griješim?


našao sam odgovor , molim moderatora da obriše temu



[Ovu poruku je menjao mmix dana 15.07.2009. u 08:50 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: materialized views ko ms sql servera15.07.2009. u 07:49 - pre 179 meseci
Okaci odgovor ovde, mozda ce jos nekom biti od koristi...
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
..140.124-dsl.net.metronet.hr.



+19 Profil

icon Re: materialized views ko ms sql servera15.07.2009. u 16:51 - pre 179 meseci
u index treba staviti sve kolone koje su u "Group By".
 
Odgovor na temu

HladankaoLed
Database Consultant
Vienna, Austria

Član broj: 228937
Poruke: 36
*.wk.or.at.

Sajt: milossql.wordpress.com


+1 Profil

icon Re: materialized views ko ms sql servera27.07.2009. u 15:58 - pre 179 meseci
Bez imalo zelje za polmikom sa korisnikom koji je zapoceo temu, zbog ostalih korisnika moram da napomenem da ovo jednostavno nije tacno.

Prilikom pokusaja kreiranja indeksa dobijena je sledeca poruka:

Citat:
Cannot create index on view 'marko.dbo.racuni1' because its select list does not include a proper use of COUNT_BIG. Consider adding COUNT_BIG(*) to select list.



S obzirom da je problem, prema korisniku koji je zapoceo temu, resen time sto su sve kolone iz GROUP BY dodate u indeks ispada da je SQL Server iz samo njemu znanih razloga izbacio poruku o gresci koja nema veze sa problemom. Desava se da su poruke o greskama nedovoljno precizne, katkad suvise genericke, pa cak i pogresne, ali je u najmanju ruku neozbiljno ignorisati ih.

Jedno od mnogobrojnih ogranicenja prilikom kreiranja indexed viewa kaze da je u slucaju da se koriste agregatne funkcije obavezna upotreba funkcije COUNT_BIG(*). Ogranicenej je sasvim na liniji greske koja je dobijena. Posto ista nije korigovana, naravno da index ni u drugom slucaju nije mogao da bude kreiran. Stoga bih zamolio korisnika MarkoBalkan da svojim odgovorom ne dovodi u zabludu druge korisnike.

U ovom pogledu je znaci neophodno dodati jos jednu stavku u SELECT iskazu (COUNT_BIG(*) naprimer), a ukoliko su u kolonama nad kojima se sumira dozvoljene NULL vrednosti onda je neophodno pozvati ISNULL funkciju:

Code:
SUM(ISNULL(dbo.racuni.kolicina,0))


inace ce nas SQL Server obradovati novom porukom '...SUM aggregate of nullable expression..' ili slicno tome.

Tek onda, i to ukoliko su i ostali preduslovi ispunjeni (kompletna lista na [url=http://technet.microsoft.com/en-us/library/ms191432.aspx][/url]) moze da se indeksira pogled. Pogled moze da se napravi naravno, ali ne moze da se indeksira ukoliko sve pobrojano nije ispunjeno. Kreiranje indexed views-a moze da bude velika blagodet za aplikaciju ukoliko se eskivira tuce raznih ogranicenja.

Nezavnisno od indeksiranih pogleda pokusaj kreiranja unique indeksa na koloni za koju korisnik u GROUP BY delu pretpostavlja da nije unique logicki je pogresan.

Pozdrav,
HKL
Sad šta je tu je. A možda će da dođe i ova tvoja tetka iz Bosanske Krupe.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
..151.242-dsl.net.metronet.hr.



+19 Profil

icon Re: materialized views ko ms sql servera31.07.2009. u 21:01 - pre 179 meseci
@HladankaoLed

dogodilo se slučajno
 
Odgovor na temu

[es] :: MS SQL :: materialized views ko ms sql servera

[ Pregleda: 2584 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.