小编Joã*_*ões的帖子

SQL Server 2005执行全表在索引扫描之前排序

我在SQL Server 2005数据库中订购性能时遇到问题.可以说我有以下查询:

select 
    id, versionId, orderIndex
from Forms_Page
where
    versionId = 'AFCF4921-31B4-44C1-B3A7-913910F7600E'
order by
    orderIndex
Run Code Online (Sandbox Code Playgroud)

此查询将返回7行并执行约23秒.此查询的执行计划如下(无法发布图像):

选择(成本:0%) - >排序(成本:11%) - >聚集索引扫描(成本:89%)

如果我删除'order by'子句,查询将在~4 ms内完成,就像预期的那样.

为什么SQL Server在获取请求的行之前进行排序?这对我来说没有意义.为什么不首先获得7行并仅排序?我是否遗漏了某些内容,例如数据库配置,或者这是预期的行为?

我可以使用内部选择,如下所示,强制引擎首先获取行然后排序,这将在~6毫秒内返回行,但由于我们使用的是EF,因此这不是一个好的解决方案.我们(我们可以在内存中对结果进行排序,但是我们正在为一些生成SQL代码的实体使用LoadWith选项,并且该代码也遇到了相同的"order by"问题).

select *
from(
    select 
        id, versionId, orderIndex
    from Forms_Page
    where
        versionId = 'AFCF4921-31B4-44C1-B3A7-913910F7600E'
) T
order by
    T.orderIndex
Run Code Online (Sandbox Code Playgroud)

我测试了一些索引是已排序的列,它固定了东西,但只是因为列已经排序.看起来像一个笨重的解决方案......

sql-server performance entity-framework

7
推荐指数
1
解决办法
394
查看次数

找不到org.aspectj.weaver.reflect.ReflectionWorld

我在Eclipse 4.3中设置了一个Spring 3.2.3 + Hibernate 4项目.

当我将代码添加<tx:annotation-driven transaction-manager="transactionManager"/>到我的上下文时,我开始在每个bean中收到以下错误:

Build path is incomplete. Cannot find class file for org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
Run Code Online (Sandbox Code Playgroud)

现在,我将AspectJ Tools和Cglib依赖项添加到我的项目中,JAR就在那里,包括它找不到的类.应用程序正常运行,Spring正在成功管理会话和事务.

我已经搜索了一个解决方案,但每个答案都说错误的发生是因为缺少JAR.

有谁知道我缺少什么(不兼容的版本?)或者这是一个Eclipse错误?

这是问题的打印屏幕(您将看到的每个错误都是我上面指出的错误).

在此输入图像描述

提前致谢!

java eclipse spring hibernate aspectj

7
推荐指数
2
解决办法
1万
查看次数

最后一个跨度换行但不能更改HTML

想象一下以下说明性HTML:

<form>
<div class="line">
    <label class="lbt" for="name">Name:</label>
    <span class="obr">*</span>
    <input id="name" class="inp" type="text" />
    <span class="err">Missing!</span>
</div>
<div class="line">
    <label class="lbt" for="area">Area:</label>
    <input name="area" class="inp" type="text" />
    <span class="suf">m<span style="vertical-align: super;">2</span></span>
    <span class="err">Missing!</span>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

根据客户要求,标签和带有强制性指示符的跨度必须在同一行中,作为下一行中的输入和其余跨度.强制性指标必须在标签文本之后,另一个在输入元素之后.

遗憾的是,我无法更改HTML代码,或者我将强制性元素放在标签内并使用display: block样式(或者在两个跨度中包装并执行相同操作).

我尝试使用.obr::after创建一个换行符,但因为这个元素并不总是存在而且我不能::before在输入元素中使用所以我倾向于认为使用内容是不可行的,除非有一种方法可以有条件地(.lbt::after或者.obr::after如果存在).这是一个解决这个问题的方法.

我也试过浮点和位置方法,但没有找到一个适合任何标签或输入大小的通用解决方案.我可能会考虑使用jQuery,但我更喜欢只有CSS的简单方法.

差不多两天试图找到一个好的解决方案......

html css

2
推荐指数
1
解决办法
592
查看次数