Skip to content

[FEATURE] Web: general feedback #178

@jobbish-sql

Description

@jobbish-sql

Which component(s) does this affect?

  • Desktop App
  • CLI Tool
  • SSMS Extension
  • Plan Analysis Rules
  • Documentation

Problem Statement

I tried out the web version to give some feedback:

  1. The darling-data-logo.png file in the top left is too small to read
  2. I can upload a plan and see warnings: 25 but the 25 number is the total of warnings, info, and critical issues combined.
  3. For multi-statement actual plans, it would be very cool if there was some kind of table of contents or summary at the top that ranked the statements by actual time/cpu time/whatever. That would make it easier to go to the statement that is the biggest problem. Right now you're showing cost at the top but a scrollbar appears with 10+ items on my 1080p monitor. We also all know how you feel about operator costs.
  4. It would be helpful to give more horizontal space for the wait stats.

Everything below this is specific to an actual plan which I will send to you privately

  1. STATEMENT 1: Plan gives a warning for "Query running serially: MAXDOP is set to 1." even though it's a simple variable assignment with a constant scan that takes 0 ms of actual time. The plan also has a cost of 0 units. I think it would be good to add some gatekeeping in terms of when you show the MAXDOP 1 warning.
  2. STATEMENT 1: This query assigns a value to a local variable, but I'm getting the "Local Variables Local variables detected..." warning. Not sure if it's reasonable to hide that warning if the only local variable in use is used for assignment purposes. I will note that talking about OPTION (RECOMPILE) doesn't make sense here and there's no issue when the statement is taking 0 ms. Also worth thinking about just the volume of warnings that will be generated by a stored procedure which happens to be using local variables.
  3. STATEMENT 5: "Filter operator discarding rows late in the plan. • 263 of 555 rows discarded (47%) • 19 logical reads below" - the only child operator is an index seek that takes 0 ms. The filter itself takes 1 ms. As noted in the warning, there was 19 logical reads done. Isn't this going to flag nearly every filter operator as a warning? Maybe set some kind of thresholds or something?
  4. STATEMENT 6: "Excessive Grant: Requested 2,624 KB, Granted 2,624 KB, Used 16 KB" I'm personally not concerned about an excessive grant of 2 MB. Maybe hide based on EstimatedAvailableMemoryGrant or some other logic?
  5. STATEMENT 8: it looks like the merge interval tricked the tool into a false positive warning about the "Join OR Clause"
  6. STATEMENT 10: "Rewrite as an inline table-valued function, or dump results to a #temp table and apply the UDF only to the final result set." - other options include writing to a local variable or making eligible for UDF inlining (depending on the version of SQL Server)
  7. STATEMENT 10: Some of the "Filter operator discarding rows late in the plan" warnings do not have stats for logical reads and time of their child operators
  8. STATEMENT 10: "InfoIndex Seek (Node 160)Row Goal Row goal active: estimate reduced from 1 to 1 (1x reduction)"

Proposed Solution

:^)

Use Case

:^)

Alternatives Considered

no

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions