小编Miq*_*lla的帖子

SQL Server中大型数据集的慢速独特查询

我们使用SQL Server 2005来跟踪相当数量的不断传入的数据(每秒5-15次更新).我们注意到它已经生产了几个月后,其中一个表开始花费大量的时间来查询.

该表有3列:

  • id - 自动编号(群集)
  • typeUUID - 插入发生之前生成的GUID; 用于将类型组合在一起
  • typeName - 类型名称(duh ......)

我们运行的查询之一是该typeName领域的一个独特的:

SELECT DISTINCT [typeName] FROM [types] WITH (nolock);
Run Code Online (Sandbox Code Playgroud)

typeName字段上有一个非clusted,非唯一的升序索引.该表目前包含大约200M条记录.当我们运行此查询时,查询需要5米58秒才能返回!或许我们不理解的指标是如何工作的.但我不认为我们错误地理解它们多少.

为了进一步测试,我们运行了以下查询:

SELECT DISTINCT [typeName] FROM (SELECT TOP 1000000 [typeName] FROM [types] WITH (nolock)) AS [subtbl]
Run Code Online (Sandbox Code Playgroud)

这个查询在大约10秒内返回,正如我所料,它正在扫描表格.

我们在这里缺少什么?为什么第一个查询需要这么长时间?

编辑:啊,我的道歉,第一个查询返回76条记录,谢谢你ninesided.

跟进:谢谢大家的回答,现在对我来说更有意义(我不知道为什么之前没有......).没有索引,它正在对200M行进行表扫描,带有索引,它正在对200M行进行索引扫描......

SQL Server确实更喜欢索引,它确实提供了一点性能提升,但没什么好兴奋的.重建索引确实将查询时间缩短到超过3米而不是6米,这是一项改进,但还不够.我只是向老板推荐我们规范表格结构.

再一次,谢谢大家的帮助!!

sql sql-server sql-server-2005

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

如何在命令行界面中处理ctrl-break信号

在开始之前,我想澄清一下,这不是一个命令行工具,而是一个通过它自己的命令行界面接受命令的应用程序.

编辑:我必须为我之前的解释道歉,显然我没有做好解释它的工作.再一次...

我正在构建一个接受用户命令的命令行界面应用程序.我有一个信号处理程序设置来捕获信号,然后设置我需要终止应用程序的标志.我遇到的问题是我能找到的所有控制台功能都是阻塞的,这意味着我无法检测到我需要退出控制台处理循环,直到用户按下某个键(或输入,具体取决于函数) ).

是否有一些标准的方法我可以做非块控制台交互,或者是否有一种优雅的方式来构造程序,这样如果我只是从信号线程终止,那么一切都将被正确处理和释放(请不要错误 - 理解这一点,我知道如何使用锁定和释放信令线程中的资源来实现这一点,但这可能会变得混乱,所以我宁愿避免它)

希望这个解释更有意义......

c++ signals command-line-interface

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

Python无法创建实例

我正在尝试使用PyCXX创建一个简单的 Python 扩展。我正在针对我的 Python 2.5 安装进行编译。

我的目标是能够在 Python 中执行以下操作:

import Cats

kitty = Cats.Kitty()

if type(kitty) == Cats.Kitty:
    kitty.Speak()
Run Code Online (Sandbox Code Playgroud)

但每次我尝试时,都会出现以下错误:

TypeError: cannot create 'Kitty' instances

它确实被视为Cats.Kitty类型对象,但我无法创建 Kitty 类的实例,有什么想法吗?

这是我当前的来源:

#include "CXX/Objects.hxx"
#include "CXX/Extensions.hxx"
#include <iostream>

using namespace Py;
using namespace std;

class Kitty : public Py::PythonExtension<Kitty>
{
    public:
        Kitty()
        {
        }

        virtual ~Kitty()
        {
        }

        static void init_type(void)
        {
            behaviors().name("Kitty");
            behaviors().supportGetattr();

            add_varargs_method("Speak", &Kitty::Speak);
        }

        virtual Py::Object getattr( const char *name )
        {
            return getattr_methods( name );
        } …
Run Code Online (Sandbox Code Playgroud)

python pycxx

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

在iPhone上显示格式化文本

我需要在iPhone应用程序中显示文本,例如书籍的显示方式,例如:

标题

子标题

这本书的实际文本.等等.等等.等等.


我该怎么做呢?我找到了UITextView和UITextField以及UIScrollView对象,但我无法弄清楚如何正确使用它们......有什么建议吗?

我希望这是有道理的...

iphone cocoa-touch

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

使用 Objective-C 获取 Photoshop 的动作列表

我正在使用 C++ 和 Obj-C 编写一个与 Photoshop 交互的 OSX 应用程序。

我一直在使用NSAppleScript动态构建的 AppleScripts 来驱动 Photoshop(是的,这有点可怕......)我希望能够以不同的方式驱动 Photoshop,所以如果有人知道更好的方法,我愿意接受!不幸的是,我无法使用ScriptingBridge,因为我无法将我的用户绑定到 Leopard。

就在前几天晚上,当我从 Photoshop 查询操作列表以向用户显示时,出现了大问题。显然,Photoshop 的脚本集成不会向 AppleScript 公开动作列表 API。这是我不能使用的第二个原因ScriptingBridge

有谁知道如何在 Obj-C/C++ 程序中访问 Photoshop 的动作列表?额外问题:有谁知道我可以与 Photoshop 交互的更好方法吗?!

c++ photoshop applescript objective-c

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

单选Win32 ListView(通用控件)

我正在使用C++中Common Controls 6.0的ListView控件,我需要ListView才能单选.

所有更高级别的控件都具有此功能(例如.Net和Qt),但我认为它们是基于此控制的某个地方.关于如何使其成为单选列表的任何想法?


为了防止它产生影响,这是我当前的create语句:

list = ::CreateWindowExW(
    0,
    WC_LISTVIEWW,
    NULL,
    WS_VISIBLE | WS_CHILD | WS_BORDER | LVS_SHOWSELALWAYS | LVS_REPORT | LVS_OWNERDATA,
    0,
    0,
    250,
    400,
    parentWindow,
    NULL,
    NULL,
    NULL
);
Run Code Online (Sandbox Code Playgroud)

c++ winapi listview common-controls

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