คำเตือนในแผนแบบสอบถาม“ Cardinality Estimate”


17
create table T(ID int identity primary key)
insert into T default values
insert into T default values

go

select cast(ID as varchar(10)) as ID
from T
where ID = 1

แบบสอบถามด้านบนมีคำเตือนในแผนแบบสอบถาม

<Warnings>
  <PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" />
</Warnings>

ทำไมถึงมีคำเตือน?

นักแสดงในรายการฟิลด์จะมีผลต่อการประมาณค่า cardinality อย่างไร

คำตอบ:


12

คำเตือนนี้เป็นเรื่องใหม่สำหรับ SQL Server 2012

จาก คำเตือน "การแปลงประเภทในนิพจน์ ..... " ใหม่ใน SQL2012 ไปจนถึงการใช้งานที่มีเสียงดัง

ฉันเห็นสิ่งที่คุณหมายถึง ในขณะที่ฉันยอมรับว่านี่เป็นเสียงรบกวนในกรณีส่วนใหญ่มันเป็นลำดับความสำคัญต่ำที่เราจะแก้ไข เราจะดูมันถ้าเราได้รับข้อเสนอแนะเพิ่มเติม สำหรับตอนนี้ฉันได้ปิดสิ่งนี้ด้วยการออกแบบ

การเชื่อมต่อถูกฆ่าและดูเหมือนว่าปัญหาดั้งเดิมจะถูกโอนไปยัง UserVoice นี่คือปัญหา UserVoice ที่แตกต่างกันเกี่ยวกับปัญหาเดียวกันการแปลงประเภทอาจส่งผลต่อ CardinalityEstimate - แปลง / ส่งในคอลัมน์ที่เลือก

ฉันจะให้คำตอบที่น่าเบื่อจนกว่าจะมีคนมาพร้อมกับคำตอบที่ดีกว่า

ทำไมถึงมีคำเตือน?

การเก็งกำไรในส่วนของฉัน
มีตัวละครในคอลัมน์ที่ใช้ในส่วนคำสั่งที่ทำให้สถิติของคอลัมน์นั้นน่าสนใจ การเปลี่ยนแปลงประเภทข้อมูลทำให้สถิติไม่ดีดังนั้นให้เตือนเกี่ยวกับสิ่งนั้นในกรณีที่ค่าจากรายการเขตข้อมูลอาจสิ้นสุดลงเพื่อใช้ที่ใดที่หนึ่ง

นักแสดงในรายการฟิลด์จะมีผลต่อการประมาณค่า cardinality อย่างไร

ไม่สามารถทำได้เว้นแต่จะเป็นรายการเขตข้อมูลในตารางที่ได้รับ


ฉันจะผนวกต่อไปนี้เพื่อประโยคสุดท้าย, หรือแบบสอบถามคือคำจำกัดความมุมมองและคำสั่งจะกรองในคอลัมน์แสดงคำเตือนในคำถาม
John Eisbrener
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.