Skip to content

Commit dc1faf8

Browse files
Minor fixes for DirectLake metric collection (#119)
* Re-run DmvExtractor only if readStatisticsFromData is enabled * Add DmvExtractor re-run to GetDaxModel overload * Remove analyzeDirectQuery filter when retreiving referential integrity violations
1 parent 1fa32d3 commit dc1faf8

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/Dax.Model.Extractor/StatExtractor.cs

+1-5
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,8 @@ public void LoadRelationshipStatistics(int sampleRows = 0,bool analyzeDirectQuer
106106
{
107107
var loopInvalidRelationships = relationshipList.Where(r => r.InvalidRows > 0).ToList().SplitList(10);
108108
#region Details
109-
foreach (var relationshipSetComplete in loopInvalidRelationships)
109+
foreach (var relationshipSet in loopInvalidRelationships)
110110
{
111-
var relationshipSet =
112-
relationshipSetComplete
113-
.Where(rel => analyzeDirectQuery || ((!rel.FromColumn.Table.HasDirectQueryPartitions) && (!rel.ToColumn.Table.HasDirectQueryPartitions)))
114-
.ToList();
115111
// Skip EVALUATE if no valid relationships are found
116112
if (!relationshipSet.Any()) continue;
117113

src/Dax.Model.Extractor/TomExtractor.cs

+10-6
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,13 @@ public static Dax.Metadata.Model GetDaxModel(string connectionString, string app
296296
Dax.Metadata.Extractor.DmvExtractor.PopulateFromDmv(daxModel, connection, serverName, databaseName, applicationName, applicationVersion);
297297

298298
// Populate statistics by querying the data model
299-
if (readStatisticsFromData) {
299+
if (readStatisticsFromData)
300+
{
300301
Dax.Metadata.Extractor.StatExtractor.UpdateStatisticsModel(daxModel, connection, sampleRows, analyzeDirectQuery, analyzeDirectLake);
302+
303+
// if we have forced all columns into memory then re-run the DMVs to update the data with the new values after everything has been transcoded.
304+
if (analyzeDirectLake > DirectLakeExtractionMode.ResidentOnly)
305+
Dax.Metadata.Extractor.DmvExtractor.PopulateFromDmv(daxModel, connection, serverName, databaseName, applicationName, applicationVersion);
301306
}
302307
}
303308
return daxModel;
@@ -351,12 +356,11 @@ public static Dax.Metadata.Model GetDaxModel(string serverName, string databaseN
351356
// Populate statistics by querying the data model
352357
if (readStatisticsFromData)
353358
{
354-
Dax.Metadata.Extractor.StatExtractor.UpdateStatisticsModel(daxModel, connection, sampleRows, analyzeDirectQuery, analyzeDirectLake );
355-
}
359+
Dax.Metadata.Extractor.StatExtractor.UpdateStatisticsModel(daxModel, connection, sampleRows, analyzeDirectQuery, analyzeDirectLake);
356360

357-
// if we have forced all columns into memory then re-run the DMVs to update the data with the new values after everything has been transcoded.
358-
if (analyzeDirectLake > DirectLakeExtractionMode.ResidentOnly) {
359-
Dax.Metadata.Extractor.DmvExtractor.PopulateFromDmv(daxModel, connection, serverName, databaseName, applicationName, applicationVersion);
361+
// if we have forced all columns into memory then re-run the DMVs to update the data with the new values after everything has been transcoded.
362+
if (analyzeDirectLake > DirectLakeExtractionMode.ResidentOnly)
363+
Dax.Metadata.Extractor.DmvExtractor.PopulateFromDmv(daxModel, connection, serverName, databaseName, applicationName, applicationVersion);
360364
}
361365
}
362366
return daxModel;

0 commit comments

Comments
 (0)