Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
I like to have single column lists and queries that are referenced from my fact table then I inner join/list.contains them to my dim tables as it helps the user experience with filtering.
My question is for lists I use list.buffer to improve performance and then use list.contains in my dim tables. But wanted to know if I should use table.buffer on single column tables/queries so when I do a inner join in my dim table it also improves performance like my list.buffer/list.contains does?
Solved! Go to Solution.
List.Buffer or Table.Buffer are useful when you use them multiple times in your query. If you are using them only once, then there is no advantage in buffering them. Buffering consumes finite amount of memory and time. Many times, it may degrade the performance, hence don't use them if you are not using them multiple times. You will have to experiment in your query whether buffering is working for you or not. Take a note that Table.Buffer breaks Query folding which is its biggest disadvantage. Hence, if you are taking advantage of Query Folding, then you must not use Table.Buffer. The trade-off of using query folding vs.a.vs. Table.Buffer is far better (true is most situations but some exceptions might be there)
List.Buffer or Table.Buffer are useful when you use them multiple times in your query. If you are using them only once, then there is no advantage in buffering them. Buffering consumes finite amount of memory and time. Many times, it may degrade the performance, hence don't use them if you are not using them multiple times. You will have to experiment in your query whether buffering is working for you or not. Take a note that Table.Buffer breaks Query folding which is its biggest disadvantage. Hence, if you are taking advantage of Query Folding, then you must not use Table.Buffer. The trade-off of using query folding vs.a.vs. Table.Buffer is far better (true is most situations but some exceptions might be there)