- 浏览: 614417 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (240)
- 程序员数学/线性代数(Linear Algebra) (2)
- 程序员数学/微积分(Calculus) (6)
- 机器学习(Machine Learning) (5)
- JAVA SE (63)
- JAVA EE (14)
- 数据库技术 (26)
- struts (4)
- 软件设计/设计模式 (0)
- ibatis (2)
- XML (4)
- 领域建模 (0)
- 数据资源共享 (1)
- 软件工程 (11)
- 技术以外 (6)
- 面向对象 (2)
- 科学数据共享 (1)
- 资源 (7)
- WEB2.0 (11)
- 电子商务 (10)
- 算法、数据结构、数学 (10)
- LAMP (1)
- 杂谈 (12)
- C语言 (7)
- 程序设计思想 (3)
- 读书和笔记 (1)
- 生活 健身 养生 (5)
- WEB UI (2)
- eclipse (2)
- 项目管理 (7)
- oracle (5)
- linux (1)
- webGIS (6)
最新评论
-
TimePower:
OK~终于明白了~~
参数(parameter)和属性(Attribute)的区别 -
OnTheRoad_lee:
不错,正式我想要的东西,一直不明白序列化是什么?有什么用?至此 ...
我对Java Serializable(序列化)的理解和总结 -
EchoZhouYou:
好久不上这,找这本书时发现这一篇,特意登录来赞一下
《程序设计语言——实践之路》读后感 -
yong7356:
学习一下Serializable
我对Java Serializable(序列化)的理解和总结 -
dengjm_2012:
写得不错!
我对Java Serializable(序列化)的理解和总结
正如前面提到的,键的选择性是决定当执行一个查询时是否使用索引的重要因素。SQL Server在系统表sysindexs的statblob字段中存储了键的选择性和样本直方图的值。查询优化器正是基于索引键对应于该列中的值和查询中的SARG,来决定使用哪个索引。
Statblob列是一个image类型列,为了看到存储在该列中的统计信息,可使用DBCC SHOW_STATISTICS命令,该命令返回下列信息:
DBCC SHOW_STATISTICS语法如下:
DBCC SHOW_STATISTICS (tablename, index)
Listing 34.1显示了authors表中的在au_lname和au_fname列的aunmind非聚集索引的统计信息。
Statistics for INDEX 'aunmind'.
Updated Rows Rows Sampled Steps Density Average key length
-------------------- ------ ------------ ----- ---------- ------------------
Aug 6 2001 1:34AM 23 23 22 0.0 24.52174
All density Average Length Columns
------------------------ ------------------------ --------------------------
4.5454547E-2 7.3913045 au_lname
4.3478262E-2 13.52174 au_lname, au_fname
4.3478262E-2 24.52174 au_lname, au_fname, au_id
(3 row(s) affected)
RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS
----------------- ------------ ------------ -------------------- --------------
Bennet 0.0 1.0 0 0.0
Blotchet-Halls 0.0 1.0 0 0.0
Carson 0.0 1.0 0 0.0
DeFrance 0.0 1.0 0 0.0
del Castillo 0.0 1.0 0 0.0
Dull 0.0 1.0 0 0.0
Green 0.0 1.0 0 0.0
Greene 0.0 1.0 0 0.0
Gringlesby 0.0 1.0 0 0.0
Hunter 0.0 1.0 0 0.0
Karsen 0.0 1.0 0 0.0
Locksley 0.0 1.0 0 0.0
MacFeather 0.0 1.0 0 0.0
McBadden 0.0 1.0 0 0.0
O'Leary 0.0 1.0 0 0.0
Panteley 0.0 1.0 0 0.0
Ringer 0.0 2.0 0 0.0
Smith 0.0 1.0 0 0.0
Straight 0.0 1.0 0 0.0
Stringer 0.0 1.0 0 0.0
White 0.0 1.0 0 0.0
Yokomoto 0.0 1.0 0 0.0
分析上面的输出,你能推算出统计最后的修改时间是2001年8月6日。当生成计信息时该表共有23行(Rows),所有23行都用来抽样生成统计信息(Rows Sampled)。键值的平均长度为24.52174字节(Average Key Length)。根据密度信息(Density),你能看到该索引具有高选择性(低密度意味着高选择性——索引密度后面将涉及到)。表中23行数据,其中22行具有唯一值。
在概述信息和索引密度之后,显示了索引直方图。
索引直方图(The Statistics Histogram)
直方图中至多可存储200个样本值。每个样本值称为一个step。保存在每个step中样本值是值的范围的端点。每个step保存了3个值,分别描述为:
在listing34.1的输出中,索引中第一列的所有不同键值的值作为样本值存储在直方图中,所以,直方图中的样本值之间没有值(RANG_ROWS),其后所有的范围值为0。你可能注意到在last name 为Ringer的索引键值上有一个重复值(EQ_ROWS = 2)。为了更好比较,Listing34.2显示了bigpubs2000数据库中的sales表的DBCC SHOW_STATISTICS信息片段。
Listing 34.2 DBCC SHOW_STATISTICS Output for the titleidind Index on the sales Table in the bigpubs2000 Database
Statistics for INDEX 'titleidind'.
Updated Rows Rows Sampled Steps Density Average key length
-------------------- ------ ------------ ----- ------------ ------------------
Aug 21 2001 11:18PM 168725 168725 200 1.8955356E-3 26.405577
(1 row(s) affected)
All density Average Length Columns
------------------------ ------------------------ -----------------------------
1.8621974E-3 6.0 title_id
5.997505E-6 10.0 title_id, stor_id
5.9268041E-6 26.405577 title_id, stor_id, ord_num
(3 row(s) affected)
RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS
------------ ---------- ------- ------------------- -------------------
BI0194 0.0 314.0 0 0.0
BI2184 613.0 343.0 2 306.5
BI2574 270.0 277.0 1 270.0
BI3224 618.0 286.0 2 309.0
BI3976 311.0 293.0 1 311.0
BI6450 673.0 300.0 2 336.5
BI9506 947.0 292.0 3 315.66666
BU1111 296.0 299.0 1 296.0
BU7832 349.0 334.0 1 349.0
CH0249 1011.0 311.0 3 337.0
CH0639 984.0 307.0 3 328.0
...
TC4203 0.0 321.0 0 0.0
TC7777 0.0 297.0 0 0.0
(200 row(s) affected)
从这个例子你可以看出,每个范围内有更多的值(RANG_ROWS),并且每个step中包含了更多的重复值(EQ_ROWS)。另外,直方图中的所有200行都被使用了,表中的168,725行记录分布在这些200行中。所有的168,725行都被用来生成统计信息(Rows Sampled)。
只有当一个常量表达式与索引列进行比较时,并且常量表达式的值在查询编译时是已知时,SARG的计算才能使用直方图的step值。直方图中的step可以为SARG使用的的例子包括:
Where col_a = getddate()
Where cust_id = 12345
Where monthly_sales < 10000 /12
Where l_name like "Smith" + "%"
有些常量表达式的直到查询运行时才能计算出来。这些查询参数中包含了局部变量或者子查询:
Where price = @avg_price
Where total_sales > (select sum(qty) from sales)
Where titles.pub_id = publishers_id
对于这些类型的表达式,你需要其他方法来估计匹配的行数。另外,因为直方图steps只记录了索引中第一列的值,当需要评估组合索引的多列的SARG匹配的行数时,SQL Server必须使用不同方法来决定,例如下面:
Select * from sales
Where title_id = 'BI3976'
And stor_id = 'p648'
当直方图没有被使用或者不能使用时,SQL Server使用索引密度值来估计匹配的行数。
索引密度(Index Densities)
当一个查询的SARG 的值直到查询运行时才已知,或者SARG是关于一个索引的多列时,SQL Server才使用为索引中每列存储的密度值。对于组合键值,SQL Server为第一列的组合键存储了密度值;为第一列和第二列;为第一、二、三列;等等。这些信息可以从Listing34.1的DBCC SHOW_STATISTICS 输出信息的All density区域看到。
索引密度表示为键的唯一键值的倒数。每个键的密度可以按照下面的公式进行计算:
所以,pubs数据库的author表中state列的密度计算公式如下:
Density
----------------
.1250000000000
State和zip的组合列密度计算如下:
Density
----------------
.0555555555555
注意,不像选择率,越小的索引密度意味着具有更高的索引选择性。当密度趋近于1,索引就变得有更少的选择性,基本上没有用处了。当索引的选择性低的时候,优化器可能会选择一个表扫描(table scan),或者叶子级的索引扫描(Index scan),而不会进行索引查找(index seek),因为这样会付出更多的代价。
Key Column Index Density
title_id 1.8621974E-3
title_id, stor_id 5.997505E-6
title_id, stor_id, ord_num 5.9268041E-6
使用索引密度评估行数(Estimating Rows Using the Index Statistics)
那么优化器是如何使用索引密度来决定一个索引的效果呢?
当在一个范围内查找一个索引值或者键中存在重复值时,SQL Server会使用直方图信息。考虑下面关于bigpubs2000数据库中的sales表中查询:
因为在表中title_id中存在重复值,SQL Server使用关于title_id的直方图(参考Listing34.2)来估计匹配的行数。对于BI2184值,它将查看EQ_ROWS值,值为343.0。这表示在表中title_id值为BI2184的记录共有343行。
当一个查询参数(search argument)的精确匹配(exact match 即等号计算)在直方图中step没有发现时,SQL Server使用比查找值(search value)大的下一个step中的AVG_RANG_ROWS值。例如,SQL Server对查找值为‘BI2187’进行评估,它将会发现匹配值为270.0行。
对一个范围检索,SQL Server把检范围两端的RANG_ROW和EQ_ROWS相加。例如,利用Listing34.2中的直方图,如果查找参数为 where title_id <= 'BI2574',行数估计将是:
314 + 613 + 343 + 270 + 277,或者为1817。
当直方图不能使用时,SQL Server就使用索引密度来估计匹配行数。对于等值查找的计算公式是直截了当的,例如:
行估计值等于指定键值的索引密度(1.8621974E-3)乘以表中行数:
-------------------
314.19925631500001
如果一个查询的SARG为title_id 和stor_id,并且假如title_id的SARG是一个可在优化期间可评价的常量表达式,SQL Server会用title_id stor_id的索引密度和title_id的直方图来估计匹配的行数(对某些值来说,索引密度估计的值可能会大学直方图估计出来的值)。SQL Server 将会用二者中较小的值作为匹配的行数。
根据title_id stor_id的索引密度,你能看到:
-----------------------------------------------------
1.011929031125
在这个例子中,SQL Server将用title_id 和stor_id的索引密度来估计匹配的值。在此情况下,它估计查询将返回一条匹配的行。
生成和维护索引统计
现在,你也许会问“入户创建索引统计,并且如何维护他们?”当你在一个表上创建一个索引时候索引统计就会第一次被创建,或者当你运行UPDATE STATISTICS 命令时。在7.0以前的版本中,索引统计信息不会自动更新。如果当索引创建之后,你插入许多行,那么反映索引统计的直方图信息不会反映实际的键值分布。结果,优化器有时选择了一个低效率的执行计划。作为一个常规的日常委会工作,DBA只好创建一个schedule运行UPDATE STATISTICS来保持索引统计的及时更新。7.0以后的版本,索引统计会由SQL Server来自动更新。SQL Server不断监视有关索引键的更新活动,并在合适的情况下通过内部的进程来更新统计信息。
Statblob列是一个image类型列,为了看到存储在该列中的统计信息,可使用DBCC SHOW_STATISTICS命令,该命令返回下列信息:
- 一个直方图。它包含了索引键的第一列的偶数个样本值。SQL Server在直方图中至多存储200个样本值。
- 索引中的组合列的索引密度。索引密度表明了索引键的唯一性,本节随后将讨论。
- 计算统计信息时表中行数。
- 用于抽样生成统计信息的行数。
- 直方图中存储的样本值的个数。
- 键的平均长度值。
- 统计计算的日期和时间。
DBCC SHOW_STATISTICS语法如下:
DBCC SHOW_STATISTICS (tablename, index)
Listing 34.1显示了authors表中的在au_lname和au_fname列的aunmind非聚集索引的统计信息。
Dbcc show_statistics (authors, aunmind) Go
Statistics for INDEX 'aunmind'.
Updated Rows Rows Sampled Steps Density Average key length
-------------------- ------ ------------ ----- ---------- ------------------
Aug 6 2001 1:34AM 23 23 22 0.0 24.52174
All density Average Length Columns
------------------------ ------------------------ --------------------------
4.5454547E-2 7.3913045 au_lname
4.3478262E-2 13.52174 au_lname, au_fname
4.3478262E-2 24.52174 au_lname, au_fname, au_id
(3 row(s) affected)
RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS
----------------- ------------ ------------ -------------------- --------------
Bennet 0.0 1.0 0 0.0
Blotchet-Halls 0.0 1.0 0 0.0
Carson 0.0 1.0 0 0.0
DeFrance 0.0 1.0 0 0.0
del Castillo 0.0 1.0 0 0.0
Dull 0.0 1.0 0 0.0
Green 0.0 1.0 0 0.0
Greene 0.0 1.0 0 0.0
Gringlesby 0.0 1.0 0 0.0
Hunter 0.0 1.0 0 0.0
Karsen 0.0 1.0 0 0.0
Locksley 0.0 1.0 0 0.0
MacFeather 0.0 1.0 0 0.0
McBadden 0.0 1.0 0 0.0
O'Leary 0.0 1.0 0 0.0
Panteley 0.0 1.0 0 0.0
Ringer 0.0 2.0 0 0.0
Smith 0.0 1.0 0 0.0
Straight 0.0 1.0 0 0.0
Stringer 0.0 1.0 0 0.0
White 0.0 1.0 0 0.0
Yokomoto 0.0 1.0 0 0.0
分析上面的输出,你能推算出统计最后的修改时间是2001年8月6日。当生成计信息时该表共有23行(Rows),所有23行都用来抽样生成统计信息(Rows Sampled)。键值的平均长度为24.52174字节(Average Key Length)。根据密度信息(Density),你能看到该索引具有高选择性(低密度意味着高选择性——索引密度后面将涉及到)。表中23行数据,其中22行具有唯一值。
在概述信息和索引密度之后,显示了索引直方图。
索引直方图(The Statistics Histogram)
直方图中至多可存储200个样本值。每个样本值称为一个step。保存在每个step中样本值是值的范围的端点。每个step保存了3个值,分别描述为:
- EQ_ROWS——与样本值相同的行数。换句话就是该step中重复值的个数。
- RANG_ROWS——表示除了当前值外,介于当前step和前一个step之间其他值的行数。
- Rang Density——表示在该范围内有多少个不同的值。范围密度信息实际上有两个单独的列组成,分别为:DISTINCT_RANGE_ROWS 和AVG_RANG_ROWS。
- DISTINCT_RANGE_ROWS表示除了当前值外,当前step与前一个step之间具有多少个不同值的个数。
- AVG_RANGE_ROWS在该step范围内,每个不同值的平均行数。
在listing34.1的输出中,索引中第一列的所有不同键值的值作为样本值存储在直方图中,所以,直方图中的样本值之间没有值(RANG_ROWS),其后所有的范围值为0。你可能注意到在last name 为Ringer的索引键值上有一个重复值(EQ_ROWS = 2)。为了更好比较,Listing34.2显示了bigpubs2000数据库中的sales表的DBCC SHOW_STATISTICS信息片段。
Listing 34.2 DBCC SHOW_STATISTICS Output for the titleidind Index on the sales Table in the bigpubs2000 Database
Statistics for INDEX 'titleidind'.
Updated Rows Rows Sampled Steps Density Average key length
-------------------- ------ ------------ ----- ------------ ------------------
Aug 21 2001 11:18PM 168725 168725 200 1.8955356E-3 26.405577
(1 row(s) affected)
All density Average Length Columns
------------------------ ------------------------ -----------------------------
1.8621974E-3 6.0 title_id
5.997505E-6 10.0 title_id, stor_id
5.9268041E-6 26.405577 title_id, stor_id, ord_num
(3 row(s) affected)
RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS
------------ ---------- ------- ------------------- -------------------
BI0194 0.0 314.0 0 0.0
BI2184 613.0 343.0 2 306.5
BI2574 270.0 277.0 1 270.0
BI3224 618.0 286.0 2 309.0
BI3976 311.0 293.0 1 311.0
BI6450 673.0 300.0 2 336.5
BI9506 947.0 292.0 3 315.66666
BU1111 296.0 299.0 1 296.0
BU7832 349.0 334.0 1 349.0
CH0249 1011.0 311.0 3 337.0
CH0639 984.0 307.0 3 328.0
...
TC4203 0.0 321.0 0 0.0
TC7777 0.0 297.0 0 0.0
(200 row(s) affected)
从这个例子你可以看出,每个范围内有更多的值(RANG_ROWS),并且每个step中包含了更多的重复值(EQ_ROWS)。另外,直方图中的所有200行都被使用了,表中的168,725行记录分布在这些200行中。所有的168,725行都被用来生成统计信息(Rows Sampled)。
只有当一个常量表达式与索引列进行比较时,并且常量表达式的值在查询编译时是已知时,SARG的计算才能使用直方图的step值。直方图中的step可以为SARG使用的的例子包括:
Where col_a = getddate()
Where cust_id = 12345
Where monthly_sales < 10000 /12
Where l_name like "Smith" + "%"
有些常量表达式的直到查询运行时才能计算出来。这些查询参数中包含了局部变量或者子查询:
Where price = @avg_price
Where total_sales > (select sum(qty) from sales)
Where titles.pub_id = publishers_id
对于这些类型的表达式,你需要其他方法来估计匹配的行数。另外,因为直方图steps只记录了索引中第一列的值,当需要评估组合索引的多列的SARG匹配的行数时,SQL Server必须使用不同方法来决定,例如下面:
Select * from sales
Where title_id = 'BI3976'
And stor_id = 'p648'
当直方图没有被使用或者不能使用时,SQL Server使用索引密度值来估计匹配的行数。
索引密度(Index Densities)
当一个查询的SARG 的值直到查询运行时才已知,或者SARG是关于一个索引的多列时,SQL Server才使用为索引中每列存储的密度值。对于组合键值,SQL Server为第一列的组合键存储了密度值;为第一列和第二列;为第一、二、三列;等等。这些信息可以从Listing34.1的DBCC SHOW_STATISTICS 输出信息的All density区域看到。
索引密度表示为键的唯一键值的倒数。每个键的密度可以按照下面的公式进行计算:
引用
Key density = 1.00/ ( Count of distinct key values in the table)
键密度 = 1.00 / (表中的不同键值数)
键密度 = 1.00 / (表中的不同键值数)
所以,pubs数据库的author表中state列的密度计算公式如下:
Select Density = 1.00/ (select count (distinct state) from authors) Go
Density
----------------
.1250000000000
State和zip的组合列密度计算如下:
Select density = 1.00/( select count (distinct state + zip) from authors) Go
Density
----------------
.0555555555555
注意,不像选择率,越小的索引密度意味着具有更高的索引选择性。当密度趋近于1,索引就变得有更少的选择性,基本上没有用处了。当索引的选择性低的时候,优化器可能会选择一个表扫描(table scan),或者叶子级的索引扫描(Index scan),而不会进行索引查找(index seek),因为这样会付出更多的代价。
引用
提示:
当心你的数据库中低选择性的索引。这样的索引通常是对系统的性能是一个损害。它们通常不仅不会用来进行数据的检索,而且也会使得数据修改语句变得缓慢,因为需要额外的索引维护。识别这些索引,考虑删除掉它们。
通常,当你给键中添加更多的列时,密度值应该变得更小。例如,在Listing 34.2,密度值逐渐变小。
当心你的数据库中低选择性的索引。这样的索引通常是对系统的性能是一个损害。它们通常不仅不会用来进行数据的检索,而且也会使得数据修改语句变得缓慢,因为需要额外的索引维护。识别这些索引,考虑删除掉它们。
通常,当你给键中添加更多的列时,密度值应该变得更小。例如,在Listing 34.2,密度值逐渐变小。
Key Column Index Density
title_id 1.8621974E-3
title_id, stor_id 5.997505E-6
title_id, stor_id, ord_num 5.9268041E-6
使用索引密度评估行数(Estimating Rows Using the Index Statistics)
那么优化器是如何使用索引密度来决定一个索引的效果呢?
当在一个范围内查找一个索引值或者键中存在重复值时,SQL Server会使用直方图信息。考虑下面关于bigpubs2000数据库中的sales表中查询:
Select * from sales Where title_id = 'BI2184'
因为在表中title_id中存在重复值,SQL Server使用关于title_id的直方图(参考Listing34.2)来估计匹配的行数。对于BI2184值,它将查看EQ_ROWS值,值为343.0。这表示在表中title_id值为BI2184的记录共有343行。
当一个查询参数(search argument)的精确匹配(exact match 即等号计算)在直方图中step没有发现时,SQL Server使用比查找值(search value)大的下一个step中的AVG_RANG_ROWS值。例如,SQL Server对查找值为‘BI2187’进行评估,它将会发现匹配值为270.0行。
对一个范围检索,SQL Server把检范围两端的RANG_ROW和EQ_ROWS相加。例如,利用Listing34.2中的直方图,如果查找参数为 where title_id <= 'BI2574',行数估计将是:
314 + 613 + 343 + 270 + 277,或者为1817。
当直方图不能使用时,SQL Server就使用索引密度来估计匹配行数。对于等值查找的计算公式是直截了当的,例如:
Declare @tid varchar(6) Select @tid = 'BI2574' Select count(*) from sales where title_id = @tid
行估计值等于指定键值的索引密度(1.8621974E-3)乘以表中行数:
Select count(*) * 1.8621974E-3 From sales Go
-------------------
314.19925631500001
如果一个查询的SARG为title_id 和stor_id,并且假如title_id的SARG是一个可在优化期间可评价的常量表达式,SQL Server会用title_id stor_id的索引密度和title_id的直方图来估计匹配的行数(对某些值来说,索引密度估计的值可能会大学直方图估计出来的值)。SQL Server 将会用二者中较小的值作为匹配的行数。
根据title_id stor_id的索引密度,你能看到:
Select coun(*) * 5.997505E-6 From sales
-----------------------------------------------------
1.011929031125
在这个例子中,SQL Server将用title_id 和stor_id的索引密度来估计匹配的值。在此情况下,它估计查询将返回一条匹配的行。
生成和维护索引统计
现在,你也许会问“入户创建索引统计,并且如何维护他们?”当你在一个表上创建一个索引时候索引统计就会第一次被创建,或者当你运行UPDATE STATISTICS 命令时。在7.0以前的版本中,索引统计信息不会自动更新。如果当索引创建之后,你插入许多行,那么反映索引统计的直方图信息不会反映实际的键值分布。结果,优化器有时选择了一个低效率的执行计划。作为一个常规的日常委会工作,DBA只好创建一个schedule运行UPDATE STATISTICS来保持索引统计的及时更新。7.0以后的版本,索引统计会由SQL Server来自动更新。SQL Server不断监视有关索引键的更新活动,并在合适的情况下通过内部的进程来更新统计信息。
发表评论
-
百万级数据查询优化
2011-03-07 14:12 14511.对查询进行优化,应尽量避免全表扫描,首先应考虑在 whe ... -
死锁反反复复反反复复方法
2010-05-20 14:24 0其实所有的死锁最深层的原因就是一个:资源竞争 表现一: ... -
索引总结
2010-04-13 13:57 1426提高SQL Server性能最重要的方面之一就是提供正确的索引 ... -
选择索引:查询VS 修改性能
2010-04-13 13:55 1875I/O是决定查询性能的主 ... -
视图索引(Indexed Views)
2010-04-13 13:50 2267正如第27章所讲的那样 ... -
评价索引的有效性(Evaluating Index Usefulness)
2010-04-13 13:39 1973SQL Server提供索引主要有两个原因:其一是作为一种保证 ... -
索引和性能
2010-04-13 13:23 1404主要内容包括: 索引使用标准(Index Usage Cri ... -
SQL Server中三种查找数据方法的比较
2010-04-13 13:18 2455在SQL Server中主要有有三种方式可以查找数据,分别是: ... -
SQL Server性能调优指南
2010-04-13 09:48 2621经过几个月断断续续,比较系统学习,终于对数据库优化中所涉及到的 ... -
数据库性能调优概观
2010-04-11 19:24 2110一般而言,影响数据整体性能的因素如图所示。 若数据库设 ... -
最近需要掌握技术
2010-03-01 17:30 01、左右内全连接查询性能方面的比较 2、视图与连接查询时的性能 ... -
索引介绍
2010-01-04 06:50 0SQL Server : Nested transaction ... -
索引设计指南( Index Design Guidelines)
2009-12-02 16:51 1487SQL Server的索引对用户和T-SQL开发者来说几乎是透 ... -
评价索引的有效性(Evaluating Index Usefulness)
2009-10-29 15:29 1153SQL Server提供索引主要有两个原因:其一是作为一种实施 ... -
索引的选择(Index Selection)
2009-10-29 13:56 1161当决定在表中创建哪些索引时要对应用中查询进行仔细分析。具体包括 ... -
索引使用标准(Index Usage Criteria)
2009-10-27 17:13 1715索引使用标准(Index Usage Criteria) ... -
索引和性能(Indexs and Performance)
2009-10-27 15:24 1158索引和性能(Indexs and Pe ... -
SQL Server 2000索引实现内幕
2009-10-19 16:58 1627翻译自:Microsoft SQL Server 2000 U ... -
SQL Server迁移到ORACLE相关资料收集
2009-10-12 11:16 01|、http://blog.163.com/shenlian ... -
SQL Server内存管理
2009-09-30 14:41 2865默认情况下,SQL Server 20 ...
相关推荐
孙允中临证实践录.pdf
Rqalpha-myquant-learning对开源项目Rqalpha的改造,在应用上面更适合个人的应用。学习量化策略,对量化策略进行开发调试。2018-05-25程序更新集成大鱼金融提供的分钟线回测Mod,用来提供Jaqs分钟线数据源,测试程序通过。目前的改造情况1.增加ats.main.py,来驱动起回测,使程序可以使用pycharm进行开发调试2.增加批量回测功能3.在AlgoTradeConfig中进行配置回测的策略和所需要的参数信息,参数信息通过excel文件进行配置4.在ats.main.py中设置参数为batch,运行回测,会将输出的.csv文件放在cvsResult目录下,将回测的图片保存在picResult目录下。5.读取回测的.csv文件,提取账户信息,可以将不同参数回测的结果输出在同一张图片上,更加清晰的看清同一个策略,不同参数所带来的变化。6.从广发信号站点获取历史交易信号(站点已停止,此处无法继续)7.增加通用函数的封装,现阶段增加了对TA_LIB的调用封装(未完整完成)8.增加了对增量资金定投的情况的模拟,用
航班背景随着国内民航的不断发展,航空出行已经成为人们比较普遍的出行方式,但是航班延误却成为旅客们比较头疼的问题。台风,雾霾或飞机故障等因素都有可能导致大面积航班延误的情况。大面积延误给旅客出行带来很多不便,如何在计划起飞前2小时预测航班延误情况,让出行旅客更好的规划出行方式,成为一个重大课题。要求提前2小时(航班计划起飞时间前2小时),预测航班是否会延误3小时以上(给出延误3小时以上的概率)
comsol变压器绝缘油中流注放电仿真,使用PDE模块建立MIT飘逸扩散模型。 模型到手即用,提供MIT鼻祖lunwen中文版,及相关学习笔记资料。 流注放电,绝缘油,油纸绝缘。
基于STM8单片机的编程实例,可供参考学习使用,希望对你有所帮助
云南大数据交通太阳的云南大数据交通
comsol激光打孔(不通)水平集两相流仿真模型,涉及温度场流场水平集, 模型为复现模型,仅供学习,可自己更材料功率等参数 爽快确认模型无误并收送变形几何三维打孔模型或水平集抛光模型。
哈工深 自适应滤波课堂笔记
Django框架实现学生信息管理系统 总体概括 注册流程 首先进行输入用户名(邮箱)、密码以及验证码,输入完之后点击注册按钮。如果输入的不正确,提示错误信息。 如果一切信息填写正确无误,调用STMP模块发送激活邮件,用户必须要点击接收到邮箱链接,进行邮件激活后才方可登陆。 即使注册成功,没有激活的用户也不能登陆,用户以get的方式直接重定向到注册页面。 注册登录: 用户能在系统中进行登陆注册和忘记密码进行找回的功能。 个人中心:修改头像,修改密码,修改邮箱,可以看到我的信息。 日志记录: 记录后台人员的操作,方便发现BUG和查看各项调用进行时间。 导航栏:学生信息中有基本信息、年级及成绩信息的模块,能够排序筛选等功能。 多选操作: 可以选择多条记录进行删除操作,还可以在课程列表页可以对不同课程进行排序。 数据页码: 可以设置各项数据在每一页中显示的数量多少,进行翻页功能。 模块列表页: 能够有过滤器功能,在范围内进行查看数据。还能将数据导出为csv,x
车辆主动悬架防侧翻控制 利用Simulink和Carsim进行联合仿真,搭建主动悬架以及防倾杆模型,在不同转角工况下进行仿真试验,设置滑模等控制器计算维持车辆侧倾稳定性所需的力矩,将力矩分配到各个悬架实现控制效果。 控制效果良好,保证运行成功。 项目报告撰写请单独。
计算机系毕业设计
资源描述: HTML5实现好看的MT外卖订餐网站源码,好看的酷炫的MT外卖订餐网站源码,酷炫的MT外卖订餐网站源码模板,HTML酷炫的MT外卖订餐网站源码,内置酷炫的动画,界面干净整洁,页面主题,全方位介绍内容,可以拆分多个想要的页面,可以扩展自己想要的,注释完整,代码规范,各种风格都有,代码上手简单,代码独立,可以直接运行使用。也可直接预览效果。 资源使用: 点击 index.html 直接查看效果
MDPI下的sensors模板,.docx格式
新医林改错《内经·素问》分册.pdf
命令行查看基金、个股数据,使用天天基金和新浪财经的数据接口,欢迎大家fork基金2.0命令行查看基金、个股数据,使用天天基金和新浪财经的数据接口,欢迎大家fork环境准备运行环境Python3 所需的软件包requests prettytable colorama基金自选修改my_jijin.txt文本文件,每行都是一个您关注的基金代码启动方式python3 main.py
NiuCloud-Admin-SAAS 是一款快速开发SaaS通用管理系统后台框架, 前端采用最新的技术栈Vite+TypeScript+Vue3+ElementPlus最流行技术架构,后台结合PHP8、Java SDK、Python等主流后端语言搭建是一款快速可以开发企业级应用的软件系统。
脉振方波高频注入代码+增强型滑膜esmo代码,永磁同步电机高频注入程序 资料为C代码一份,大厂代码,可运行,经典流传; 配套一篇代码对应的说明文档,详细算法说明; 脉振方波注入方法相对于脉振正弦信号注入的形式,信号处理的过程少了一些滤波器 ,计算更简单,并且由于信号频段较高,可以实现更高的动态响应能力。 增强滑膜控制;
逆变器下垂控制,微电网逆变器孤岛下垂控制,波形输出完美
multisim学习电路基础视频共42讲(个人觉得超赞)5G提取方式是百度网盘分享地址
基于 Vue 数据可视化组件(类似阿里DataV,大屏数据展示)编辑器。基于 Vue 数据可视化组件(类似阿里DataV,大屏数据展示)编辑器。项目初始化npm install启动开发环境npm run dev项目打包上线npm run buildLints和fixes文件npm run lint