sql >> Database >  >> RDS >> Sqlserver

Geïndexeerde weergave versus indexen op tabel

Een geïndexeerde weergave veroorzaakt dezelfde problemen als een index op de kolom, omdat geïndexeerde weergaven with schemabinding vereisen , die het rechtstreeks aan de tabel koppelen, waardoor u het schema van die tabel op geen enkele manier, vorm of vorm kunt wijzigen/wijzigen. Dit omvat het wijzigen van de grootte van een kolom (bijv.-van varchar(50) naar varchar(255) ), het gegevenstype van een kolom wijzigen (bijv.-van double naar decimal(18,5) ), enz. Ik heb gezien dat ze hierdoor veel onverwachte hoofdpijn veroorzaken.

Mijn suggestie is om een ​​opgeslagen procedure of SSIS-pakket op te zetten dat een rapportagetabel voor u maakt die elk uur of zo wordt uitgevoerd. Op deze manier kunt u de altijd liefhebbende hel ervan indexeren en genieten van alle prestatievoordelen die het oplevert. Ik schaam me ervoor om te rapporteren vanuit een live, lopend systeem. Ik moet eigenlijk nog het geval zien waar dit nodig is. Voor rapportagedoeleinden is uur-oude informatie meestal absoluut voldoende om de klus te klaren.



  1. Mysql-query controleert het type blob-kolom in where-clausule

  2. MySQL-query voor huidige GMT-tijd

  3. Een eenvoudig inlog-/autorisatiesysteem met Dancer en Postgres

  4. datanucleus + jpa + orakel. Vreemde fout met tabellen die niet bestaan