|
发表于 2014-3-18 02:52:12
|
显示全部楼层
Good idea on the alias I'll try and narrow it down a bit further.
asutcliffe wrote
This is roughly what I concluded. Updating just a single alias caused the data tab to run approximately 100 times slower on a dimension of ~50000 elements. Interestingly, I managed to work around it by setting a string attribute via TI which was referenced in a rule to populate the alias. I was a little bit hesitant about this approach but haven't had any problems.
Thanks for taking the time out to confirm Alan's WAG(!), not sure I like the ruled approach since strings aren't cached and I'd be concerned that I'm swapping a dimension build performance issue for a small lag in alias referencing. If I have the time to figure an alternative approach I'll let you know.
Deleting and reinserting the alias is a non-starter as it will break an subsets that reference the alias. I guess the other thing to try is to VZO the alias before I start writing to them. This should mean that the testing process is "like" it is when the dimension has jsut been created.
In tracking down that it was the dimension delete that was causing the issue I'd already deleted all the cubes on the server so there are no rules.
Alan Kirk wrote:
[quote]Steve Rowe wrote:
Hi,
No I don't delete the elements manually.
Yes I do a Dimix before I do an element insert but. I wouldn't bother with that unless your objective is to flag duplicates; otherwise it's a waste of processor cycles. If the element exists then DimensionElementInsert just ignores it.
[/quote]
I've done some testing on this and doing a Dimix is faster than doing DimensionElementInsert, even if the element already exists. At a guess I would say that a DimensionElementInsert is not ignored for elements that already exist its just that as a user you can't tell the difference between re-insertion and ignore for an element that exists. Looking at a dimension via Dimix vs updating a dimension has a significant time difference.
In the special case where you build a dimension from scratch then the Dimix is wasted I agree, in the more general case where you are applying small incremental updates there is a performance benefit from doing a Dimix before your insert.
Anyway, thanks to the forum as ever, sounds like I have an answer. I'll post my findings.
Cheers, |
|