小编Pav*_*dek的帖子

CROSS APPLY具有表值函数限制性能

我对CROSS APPLY参数化表值函数有问题.这是简化的伪代码示例:

SELECT * 
FROM (
    SELECT lor.*
    FROM LOT_OF_ROWS_TABLE lor
    WHERE ...
) AS lor
CROSS APPLY dbo.HeavyTableValuedFunction(lor.ID) AS htvf
INNER JOIN ANOTHER_TABLE AS at ON lor.ID = at.ID 
WHERE ...
Run Code Online (Sandbox Code Playgroud)
  • 表上的内部选择LOT_OF_ROWS_TABLE返回许多行.
  • 连接表LOT_OF_ROWS_TABLEANOTHER_TABLE只返回一行或几行.
  • 表值函数非常耗时,并且在调用大量行时,select会持续很长时间.

我的问题:

LOT_OF_ROWS_TABLE无论在加入时数据是否受限这一事实,都会为所有返回的行调用该函数ANOTHER_TABLE.

选择必须采用所示的格式 - 它是生成的,实际上它更加困难.

当我尝试重写它时,它可以非常快,但它不能像这样重写:

SELECT * 
FROM (
    SELECT lor.*
    FROM LOT_OF_ROWS_TABLE lor
    WHERE ...
) AS lor
INNER JOIN ANOTHER_TABLE AS at ON lor.ID = at.ID 
CROSS APPLY dbo.HeavyTableValuedFunction(at.ID) AS htvf …
Run Code Online (Sandbox Code Playgroud)

sql-server performance restriction cross-apply

9
推荐指数
1
解决办法
4万
查看次数

像这样的java web app profiler

阅读http://code.google.com/p/mvc-mini-profiler/上的文章

对于java web应用程序,这样的任何开源分析器都可用吗?

有人开始将这个端口移植到Java环境中吗?

谢谢.

java profiler mvc-mini-profiler

8
推荐指数
1
解决办法
949
查看次数

使用F#的爱因斯坦谜语解决方案

我正在寻找使用F#的爱因斯坦谜语解决方案,我发现只有爱因斯坦遇到F#.

F#是否适合此问题,还有其他任何实现吗?

algorithm f# zebra-puzzle

5
推荐指数
0
解决办法
1210
查看次数

触摸输入和直接操作

我正在听几个事件来处理我的 Windows (Phone) 8.1 运行时代码中的触摸输入。只要不ScrollViewer涉及,这就能很好地工作。ScrollViewer由于Direct Manipulation,吞下所有手势事件。

以下是我现在听的事件(view是一个FrameworkElement):

        var cw = Window.Current.CoreWindow;
        cw.PointerPressed += OnPointerPressed;
        cw.PointerMoved += OnPointerMoved;
        cw.PointerReleased += OnPointerReleased;
        cw.PointerCaptureLost += OnPointerCaptureLost;

        view.Tapped += onTap;
        view.DoubleTapped += onDoubleTap;
        view.Holding += onHold;
        view.ManipulationDelta += onManipulationDelta;
        view.ManipulationCompleted += onManipulationCompleted;
Run Code Online (Sandbox Code Playgroud)

一旦ScrollViewer识别出点击,我就会得到一个 PointerCaptureLost 并且不再调用其他事件处理程序。

Rob Caplan 在 2013 年写道

不幸的是,如果应用程序需要滚动和手势(例如,针对滚动检测 CrossSlides),则没有好的解决方案。在这种情况下,在各处获取指针消息的唯一选择是在各处禁用直接操作,但这也会禁用滚动。要恢复它,应用程序需要自己检测滚动手势,然后使用 ScrollToHorizo​​ntalOffset 或 ScrollToVerticalOffset 或通过更新 SelectedIndex 将 ScrollViewer 导航到新位置。这很棘手,而且比让 ScrollViewer 做它的事情要慢得多。如果可能的话,应该避免。

这期间有没有改变?有人知道这样做的样本吗?

我正在编写一个抽象,它将手势事件转换为不同的事件。用户可以在其中放置任何控件,我也不知道他可以用它做什么。所以我不能仅仅为了获取手势事件而放慢速度。

除了ScrollViewer行为类似的控件之外,还有其他控件吗?

可以Windows.UI.Input.GestureRecognizer帮忙吗?由于UIElement …

c# touch swipe windows-phone windows-runtime

5
推荐指数
1
解决办法
854
查看次数

为什么SQL整数数组列在C#DataSet中映射为System.Decimal?

为什么NUMERIC(3,0)在C#(在DataSet中作为列类型或在DataAdapter中作为参数类型)生成的SQL整数数列(例如)作为类型生成Decimal

NUMERIC(3,0)可以存储-999到999范围内的整数值.我认为应该在C#中生成类型int或另一个整数.

我认为,这种行为是.NET或Visual Studio严重的bug.我应该如何解决它,如果我不想重写生成的代码,我不想转换到任何地方我在int和decimal之间使用它?谢谢.

c# sql-server types dataset dataadapter

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