小编Ian*_*ott的帖子

SQL Server索引性能 - 长列

在SQL Server(2005+)中,我需要索引一个列(仅限完全匹配)nvarchar(2000+).什么是最具可扩展性,高性能的方法?

在SQL Server(2005+)中,使用以下类型对列进行索引的实际区别是什么:

  • nvarchar(2000)
  • char(40)
  • binary(16)

例如,对索引binary(16)列的查找是否明显快于对索引的查找nvarchar(2000)?如果是这样,多少钱?

显然小在某些方面总是更好,但我不太熟悉SQL Server如何优化其索引以了解它如何处理长度.

sql sql-server indexing performance

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

MySQL加入条件

我在思考如何在MySQL中进行以下连接时遇到了麻烦.我不确定哪个联接最适合这个任务,所以当有人指出它时我会编辑标题.这是我要做的事情的要点.

我有两个表,一个叫一个Students,另一个Marks.
它们的设置如下,

学生们

只有Id字段是唯一的

  .----+-----------------+--------+--------.
  | Id | Name            | Parent |  Mark  |
  +----+-----------------+--------+--------+
  |  1 | Name goes here1 |     0  |     0  |
  |  2 | Name goes here2 |     0  |    20  |
  |  3 | Name goes here3 |     2  |    45  |
  |  4 | Name goes here4 |     2  |    50  |
  |  5 | Name goes here3 |     1  |    20  |
  |  6 | Name goes …

mysql sql join

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

Javascript replace()与大小写更改

有没有一种简单的方法来改变匹配的字符串与javascript的情况?

字符串: <li>something</li>

正则表达式: /<([\w]+)[^>]*>.*?<\/\1>/

我想做的是将匹配$ 1替换为所有大写字母(如果可能,在替换内).我不完全确定$ 1是有效匹配而不是字符串 - '$ 1'.toUpperCase不起作用.

那我怎么回事<LI>something</li>呢?方法,而不是正则表达式.

javascript regex

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

SQL Server不会使用我的索引

我有一个相当简单的查询:

SELECT
     col1,
     col2…
FROM
     dbo.My_Table
WHERE
     col1 = @col1 AND
     col2 = @col2 AND
     col3 <= @col3
Run Code Online (Sandbox Code Playgroud)

它表现得非常糟糕,所以我在col1,col2,col3(int,bit和datetime)上添加了一个索引.当我检查查询计划时,它忽略了我的索引.我尝试在每个可能的配置中重新排序索引中的列,它总是忽略索引.当我运行查询时,它执行聚簇索引扫描(表大小介于700K和800K行之间)并需要10-12秒.当我强制它使用我的索引时,它会立即返回.我小心翼翼地清除测试之间的缓存和缓冲区.

我试过的其他事情:

UPDATE STATISTICS dbo.My_Table

CREATE STATISTICS tmp_stats ON dbo.My_Table (col1, col2, col3) WITH FULLSCAN
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?我讨厌在存储过程中放置​​一个索引提示,但SQL Server似乎无法从中获得这个问题的线索.任何人都知道可能阻止SQL Server识别使用索引的任何其他事情是个好主意吗?

编辑:返回的其中一列是TEXT列,因此使用覆盖索引或INCLUDE将无法正常工作:(

sql-server indexing performance sql-server-2005

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

是否有比 pg_trgm 更快的 postgres 模糊匹配?

我有一个包含大约 500 万条记录的 Postgres 表,我想找到与输入键最接近的匹配项。我尝试在 pg_trgm 模块中使用三元组,但每次查询大约需要 5 秒,这对于我的需要来说太慢了。

有没有更快的方法在 Postgres 中进行模糊匹配?

database postgresql indexing fuzzy-search

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

使用索引的 SQL 对象

有没有一种方法可以查看一个数据库中的哪些 SQL 对象使用某个索引。但我不想看到每个对象的执行计划,因为我有很多存储过程和视图

附言。适用于 SQL 2005

sql sql-server indexing sql-server-2005

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

可以进行客户端HTTP推送吗?

几乎与服务器端推送相反,也称为Comet.我想知道是否可以使用长期的HTTP连接将信息推送到服务器.

与简单的XHR不同,连接将保持活动状态,并且数据将按时间间隔流式传输到服务器,因为用户完成了操作等.

使用标准技术我不相​​信这是可能的,但我愿意接受有关可能的开发或巧妙实现这一目标的建议.目的是完成向服务器的低延迟数据推送,以实现快速有效的单向流.

我对使用flash/java桥接器的套接字实现不感兴趣,因为服务跨域策略或获得java签名的麻烦.欢迎使用无需额外依赖性的原始黑客.优选地,解决方案将使用javascript完成.

javascript ajax streaming comet http

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

相同查询使用不同的索引?

如果更改where条件的值,select查询是否可以使用不同的索引?

以下两个查询使用不同的索引,唯一的区别是条件的值和typeenvoi ='EXPORT'或typeenvoi ='MAIL'

select numenvoi,adrdest,nomdest,etat,nbessais,numappel,description,typeperiode,datedebut,datefin,codeetat,codecontrat,typeenvoi,dateentree,dateemission,typedoc,numdiffusion,nature,commentaire,criselcomp,crisite,criservice,chrono,codelangueetat,piecejointe, sujetmail, textemail
            from v_envoiautomate
            where etat=0 and typeenvoi='EXPORT'
            and nbessais<1 


select numenvoi,adrdest,nomdest,etat,nbessais,numappel,description,typeperiode,datedebut,datefin,codeetat,codecontrat,typeenvoi,dateentree,dateemission,typedoc,numdiffusion,nature,commentaire,criselcomp,crisite,criservice,chrono,codelangueetat,piecejointe, sujetmail, textemail
            from v_envoiautomate
            where etat=0 and typeenvoi='MAIL'
            and nbessais<1
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个解释吗?

sql sql-server indexing sql-server-2005

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

C中的大数减法

大约20分钟前,我刚刚在C门课程中完成了考试.关于考试的第一个问题让我措手不及,并且找到了两个大数字的差异.

目标是按值获取两个结构(N1和N2),并将差异存储在通过引用传递的结构中(N3).我们被允许假设N3是以所有'0'开始的.MAX大小可以是任何值,因此如果数字超过100位,解决方案仍然必须工作.

这是基本代码(原始可能略有不同,这是来自内存)

#include <stdio.h>
#include <stdlib.h>
/* MAX can be any length, 10, 50, 100, etc */
#define MAX 10

struct bignum
{
    char digit[MAX];
    char decimaldigit[MAX/2];
};
typedef struct bignum bigNum;
void difference(bigNum, bigNum, bigNum *);

/*
    Original values in N1 and N2

    N1.digit = { '0', '0', '0', '5', '4', '8', '2', '0', '9', '0'};
    N1.decimaldigit { '0', '0', '0', '4', '9' };

    N2.digit = { '0', '0', '0', '4', '8', '1', '3', '1', '4', '5'};
    N2.decimaldigit …
Run Code Online (Sandbox Code Playgroud)

c algorithm bignum data-structures

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

为什么我的主键减慢了查询速度?

我正在使用SQL Server 2008,并且在我的一个表中,我在其标识符上实现了(群集)主键.这是表格描述:

标识符: - IdentifierId int NOT NULL PK - 别名nvarchar(200) - DataType int NOT NULL

我做了两个索引:一个用于Alias,另一个用于DataType.但是,我刚注意到一些奇怪的事情.运行以下查询时:

SELECT * FROM IDENTIFIER WHERE DataType = 1
Run Code Online (Sandbox Code Playgroud)

对于索引和主键,查询实际上比没有它们时运行得慢; 它需要大约10秒钟!索引没有碎片 - 我检查 - 我也在使用它

GO
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO
DBCC FREEPROCCACHE;
GO
Run Code Online (Sandbox Code Playgroud)

在查询本身之前.

这个表相当大,上面有几百万个条目.索引和PK在大多数查询中起着至关重要的作用,但在这种情况下,我无法理解为什么查询运行速度较慢.有任何想法吗?

提前致谢

编辑:执行计划显示仅使用聚集索引,并且DataType变量当前最多为150.

sql-server indexing performance

4
推荐指数
2
解决办法
1022
查看次数