AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.06.2008, 14:01   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
Today I just ran a brief test to compare the performance of queries on "SIFT Tables" (older NAV versions) with queries on "Indexed Views" (introduced with NAV 5.00 SP1) called VSIFT.


Well, in previous BLOGs or forum threads I already stated my concerns about "reading performance" on large tables with VSIFT (no question about "writing performance", this is definitely improved). As a "View" is just a pre-defined SELECT statement on a table (here supported by its own Index) this "View" is actually always gathering the data from the source table, e.g. the Ledger Entry table. With "old" SIFT Tables the required data is read from aggregated/summed records in dedicated tables, thus the data volume is compressed here.


Of course, there is a remarkable difference between standard/non-tuned SIFT Tables and VSIFT, but I wanted to compare optimized SIFT with VSIFT (that's the different to common MS test-scenarios ;c) ).


So please find here the tests I ran on a customer's (test-)system:


Table (T380):    Detailed Vendor Ledg. Entry


No. of Recs (T380):    1.460.800



 

Key:    Vendor No., Initial Entry Due Date, Posting Date, Currency Code


SumIndexFields:    Amount, Amount (LCY), Debit Amount, Credit Amount, Debit Amount (LCY), Credit Amount (LCY)



 

Buckets:    Available 0 to 9, only 7 is enabled (Tuning!)


Additional Index:    Covering Index on related SIFT Table "xxx$380$1" (Tuning!)



 

CREATE
INDEX ssi_CovIdx ON "xxx$380$1"


[color="grayfontfamilyCourier Newfontsize9pt"](
[/color]

[bucket],


[f9],


[f20],


[f4],


[s7],


[s8],


[s16],


[s17],


[s18],


[s19]


[color="grayfontfamilyCourier New"])[/color]



 

No. of Recs (SIFT):    223.080



 

The original query:



 

SELECT
SUM("s7"),SUM("s8"),SUM("s16"),SUM("s17"),SUM("s18"),SUM("s19")


FROM "xxx$380$1"


WITH
(READUNCOMMITTED)


WHERE
(bucket=7 AND f9='004792')



 

Reads:    13 pages


CPU:    0 milliseconds


Duration:    1 millisecond


Execution Plan:    Index Seek on Covering Index



 


 

Indexed View (VSIFT):



 

[color="greenfontfamilyCourier Newfontsize9pt"]-- Indexed View to replace SIFT Table
[/color]

CREATE
VIEW [dbo].[xxx$Detailed Vendor Ledg_ Entry$VSIFT$3]


WITH
SCHEMABINDING
AS


SELECT


"Vendor No_",


"Initial Entry Due Date",


"Posting Date","Currency Code",


COUNT_BIG(*) "$Cnt",


SUM("Amount") "SUM$Amount",


SUM("Amount (LCY)") "SUM$Amount (LCY)",


SUM("Debit Amount") "SUM$Debit Amount",


SUM("Credit Amount") "SUM$Credit Amount",


SUM("Debit Amount (LCY)") "SUM$Debit Amount (LCY)",


SUM("Credit Amount (LCY)") "SUM$Credit Amount (LCY)"


FROM dbo."xxx$Detailed Vendor Ledg_ Entry"


GROUP
BY "Vendor No_","Initial Entry Due Date","Posting Date","Currency Code"



 

[color="greenfontfamilyCourier Newfontsize9pt"]-- Clustered Index on View
[/color]

CREATE
UNIQUE
CLUSTERED
INDEX [VSIFTIDX] ON [dbo].[xxx$Detailed Vendor Ledg_ Entry$VSIFT$3]


[color="grayfontfamilyCourier Newfontsize9pt"](
[/color]

[Vendor No_],


[Initial Entry Due Date],


[Posting Date],


[Currency Code]


[color="grayfontfamilyCourier New"])[/color]



 

No. of Recs (VSIFT):    223.138



 

Corresponding query on VSIFT:



 

SELECT
SUM("SUM$Amount"),SUM("SUM$Amount (LCY)"),SUM("SUM$Debit Amount"),SUM("SUM$Debit Amount (LCY)"),SUM("SUM$Credit Amount"),SUM("SUM$Credit Amount (LCY)")


FROM [xxx$Detailed Vendor Ledg_ Entry$VSIFT$3]


WITH
(READUNCOMMITTED)


WHERE
("Vendor No_"='004792')



 

Reads:    53 pages


CPU:    31 milliseconds


Duration:    36 milliseconds


Execution Plan:    Clustered Index Seek on VSIFTIDX



 

Additional Index:    Covering Index on VSIFT (Tuning!)



 

CREATE
INDEX ssi_CovIdx ON "xxx$Detailed Vendor Ledg_ Entry$VSIFT$3"


[color="grayfontfamilyCourier Newfontsize9pt"](
[/color]

"Vendor No_",


"Initial Entry Due Date",


"Posting Date","Currency Code",


"SUM$Amount",


"SUM$Amount (LCY)",


"SUM$Debit Amount",


"SUM$Credit Amount",


"SUM$Debit Amount (LCY)",


"SUM$Credit Amount (LCY)"


[color="grayfontfamilyCourier Newfontsize10pt"])[/color]



 

Reads:    10 pages


CPU:    16 milliseconds (?)


Duration:    9 milliseconds


Execution Plan:    Index Seek on Covering Index



 

Results:
 SIFT

VSIFT (standard)

VSIFT (tuned)

Reads

13

53

10

CPU

0 msec

31 msec

0 msec

Duration

1 msec

36 msec

5 msec

Execution Plan

Index Seek (Cov. Idx)

Index Seek (Clustered Idx)

Index Seek (Cov. Idx)


 

Of course all queries delivered identical results. But reading from VSIFT took 40 more Page Reads (about 4 times more!) and 35 milliseconds longer (about 35 times longer). And this table T380 is actually a small one, in this table we have Ledger Entry tables containing far more records, e.g. G/L Entry (23.082.836) or Warehouse Entry (46.721.678)!



 

After little tuning the VSIFT by also adding a "Covering Index" the difference the results are almost the same, VSIFT is reading less pages (- 23%) but taking little longer.



 

(Just to point out: the figures show the objective measurement; the subjective user-experience will not feel any difference here – depending on the table size and number of queries executed within a process!)



 

Well, this test for sure isn't representative, but I feel my concerns about "VSIFT performing worse than SIFT in reading transactions" are somewhat confirmed – at least VSIFT "out-of-the-box" - … and obviously still some tuning is required to optimize the performance!



 

I really appreciate to get your comments and especially experiences with this issue!





Подробнее... http://dynamicsuser.net/blogs/stryk/archiv...ift-tables.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:27.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.