"高性能"条件COUNT(*)?

时间:2016-08-11 22:32:58

标签: sql tsql

我使用以下内容:

SELECT
    *
FROM
    [User]
Where
    Username like '%m%' 

结果将在以下同时返回:

<ListBoxItem Source="{Binding ToolsList}">
  <ListBox.Resources>
    <Style TargetType="ListBoxItem">
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="ListBoxItem">
            <Border Name="ItemBorder" BorderThickness="0">
              <TextBlock Margin="2,6">
                <Hyperlink Command="{Binding Path=Command}">
                  <TextBlock Text="{Binding Path=DisplayName}"/>
                </Hyperlink>
              </TextBlock>
            </Border>
            <ControlTemplate.Triggers>
              <Trigger Property="IsSelected" Value="True">
                <Setter TargetName="ItemBorder" Property="Background" Value="Pink"/>
              </Trigger>
            </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </ListBox.Resources>
</ListBoxItem >

进行条件计数的最快方法是什么?

2 个答案:

答案 0 :(得分:1)

由于non-sargeable LIKE与前导%符号的比较,您的执行时间相当。

这样就必须查看行,不能从统计信息或索引中提取信息 - 必须访问一个表。

答案 1 :(得分:-2)

*中使用COUNT时,您将获取查询中不需要的所有数据。只需使用任何常量来计算返回的行。

SELECT
    COUNT(1)
FROM
    [User]
Where
    Username like '%m%'