Return to search

Databasoptimering för användning med Power BI : Hur indexering och kompression kan förbättra prestanda vid datahämtning

I mätrummet på Sandvik Coromant finns en lösning för att visualisera maskinhälsa, mäthistorik och servicetider för olika mätinstrument. Lösningen för datavisualiseringen nyttjar verktyget Power BI och är kopplad till Excelfiler. När data väl hämtats in görs en rad modifieringar på tabellerna för att få fram visualiserbar data. Dessa modifieringar i kombination med många Excelark resulterar i att ledtiderna för att uppdatera en Power BI rapport blir väldigt långa. Nu önskas det att istället nyttja en databaslösning för den data dessa Excelfiler innehåller och därmed förbättra dessa ledtider. Således skapades en databas utifrån den data dessa Excelfiler innehöll. Power BI tillåter användaren att importera data från en databas till applikationen på två sätt, via Import Mode eller DirectQuery. Import Mode läser in samtliga tabeller som efterfrågas och lagrar dessa i minnet. DirectQuery ställer frågor direkt till databasen utifrån vad som efterfrågas. I och med denna skillnad i importsätt finns metoder för att optimera den databas som data läses in ifrån. Studien undersöker hur olika typer av indexering och olika typer av kompression av dessa index påverkar svarstiden på frågor ställda av Power BI för att besvara följande två forskningsfrågor: Hur påverkar olika typer av indexering av en databas datahämtningshastigheten vid användning av Power BI? Hur påverkar olika typer av kompression av index datahämtningshastigheten vid användning av Power BI? Studien utfördes genom att studera execution plans och exekveringshastighet för de frågor som ställdes mot databasen av Power BI. Med hjälp av T-SQL kunde exekveringshastigheten för en specifik fråga tas fram. Denna exekveringshastighet jämfördes sedan för de olika typerna av index och kompression mot exekveringshastigheten för samma fråga mot en tabell helt utan index. Detta utfördes sedan på tabeller med varierande antal rader, där antalet rader som testades var 33 001, 50 081, 100 101, 500 017 och 1 000 217. Resultatet av studien visar att för Import Mode är det bästa typen av index ett clustered rowstore index utan kompression, med undantag för tabeller med över 1 001 217 rader där radkompression presterade bättre. För DirectQuery presterade non-clustered rowstore index bäst, men för vilken kompression var resultatet tvetydigt. Detta eftersom samtliga typer av kompression presterade bäst för olika antal rader i tabellen. För tabeller med fler än 500 017 rader presterade dock ingen kompression allra bäst. / In the measurement room at Sandvik Coromant there is a solution for visualizing machine health, measurement history and service times for different measuring instruments. The data visualization solution uses Power Bi and connects to Excel files. Once the data has been collected, a number of modifications are made on the tables to produce something that is possible to visualize. These modifications in combination with many Excel sheets result in very long lead times for updating a Power BI report. Now it is desired to use a database solution for the data contained in the Excel files and thus improve these lead times. For this, a database was created based on the data that these Excel files contained. Power BI allows the user to import data from a database into the application in two ways, via Import Mode or DirectQuery. Import Mode loads all the requested tables and stores them in memory. DirectQuery runs queries directly to the database, based on what is requested. Due to this difference, there are methods to optimize the database from which the data is loaded. This study examines how different types of indexing and different types of compression affect the response time for queries ran by Power BI to answer the following two research questions: How do different types of indexing affect a database's data retrieval rate when using Power BI? How do different types of compression affect the data retrieval rate when using Power BI? This was done by studying execution plans and execution rate for the queries that was done towards the database by Power BI. With the help of T-SQL, the execution rate for a specific query was obtained. The execution rate for different types of index and compression was then compared against a table without an index. This was then performed on tables with varying numbers of rows, where the numbers of rows that were tested was 33 001, 50 081, 100 101, 500 017 and 1 000 217. The results of the study show that for Import Mode, the best type of index is a clustered rowstore index without compression, with the exception of tables with over 1 001 217 rows where row compression performed better. For DirectQuery, non-clustered rowstore index performed best, but for which compression the result was ambiguous. This was because all types of compression performed best for different number of rows in the table. However, for tables with more than 500 017 rows, no compression performed best.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:hig-32730
Date January 2020
CreatorsLundström, Anton
PublisherHögskolan i Gävle, Datavetenskap
Source SetsDiVA Archive at Upsalla University
LanguageSwedish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0066 seconds