当前位置: 首页 > 面试题库 >

COMB指南的性能值

慕容劲
2023-03-14
问题内容

吉米·尼尔森(Jimmy
Nilsson)在这里讨论他的COMB制导概念。这个概念在NHibernate中以及其他圈子中很流行,因为它比标准的GUID(通常随机性更高)的假定性能值高。

但是,在html" target="_blank">测试中似乎并非如此。我想念什么吗?

测试用例:

我有一个名为temp的表(不是临时表,只是一个名为“
temp”的表),其中有585,000行。我有一个名为“代码”的新表,希望将所有585,000个代码值从临时表复制到代码表。我执行的测试SQL是:

set statistics time on;

truncate table codes;
DBCC DBREINDEX ('codes', '', 90);

insert into codes (codeid, codevalue)
select newid(), codevalue from temp

truncate table codes;
DBCC DBREINDEX ('codes', '', 90);

insert into codes (codeid, codevalue)
select CAST(CAST(NEWID() AS BINARY(10)) + CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER), codevalue from temp

具有标准GUID值的性能:

SQL Server执行时间:CPU时间= 17250毫秒,经过的时间= 15735毫秒。

(受影响的585000行)

使用COMB GUID值的性能:

SQL Server执行时间:CPU时间= 17500毫秒,经过的时间= 16419毫秒。

(受影响的585000行)

我想念什么?COMB
GUID值导致了更长的时间,大概是因为额外的转换。我认为关键是通过使用最后6个字节的日期对GUIDS进行半排序来减少插入时间,但是性能提升似乎不存在。


问题答案:

其次,仅当在Guid列上有索引(PK,FK或其他类型的索引,已聚集或未聚集)时,您才会看到差异,因为标准guid与newguid或comb
guid的成本是由于每次执行插入操作时,对索引数据重新排序。



 类似资料:
  • 本文向大家介绍WordPress网站性能优化指南,包括了WordPress网站性能优化指南的使用技巧和注意事项,需要的朋友参考一下 1.选择一个好的主机 尽量不要使用免费主机或者共享主机(Godaddy啊、Bluehost啊等等所谓无限带宽、无限网站之类的主机) 首先,你的域名和你的主机最好在一个IDC哪儿,如果不是的话,建议你采用口碑良好的DNS服务商,让域名以最快的速度解析到主机上,这不是重点

  • 1 数据倾斜调优 1.1 调优概述   有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。 2.2 数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个task,997个task都在1分钟之内执行完了,但是

  • 1 前言   在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性能更高。   然而,通过Spark开发出高性能的大数

  • 主要内容:一、前情提示,二、unack消息的积压问题,三、如何解决unack消息的积压问题,四、高并发场景下的内存溢出问题,五、低吞吐量问题,六、合理的设置prefetch count,七、阶段性总结一、前情提示 这篇文章,我们将会对ack底层的delivery tag机制进行更加深入的分析,让大家理解的更加透彻一些。 面试时,如果被问到消息中间件数据不丢失问题的时候,可以更深入到底层,给面试官进行分析。 二、unack消息的积压问题 首先,我们要给大家介绍一下RabbitMQ的prefetch

  • 这一指南演示了Istio Service Mesh的通信管理能力。 概述 把微服务应用部署到Istio Service Mesh集群上,就可以在外部控制服务的监控、跟踪、(版本相关的)请求路由、弹性测试、安全和策略增强等,并且可以跨越服务界限,从整个应用的层面进行管理。 本文章将会使用Bookinfo示例应用来进行展示,看一个运维人员如何为一个运行中的应用动态的配置请求路由以及错误注入。 开始之前

  • 确保您可以轻松顺利地升级您的应用程序,这对我们是很重要的。这就是为什么我们只在主 要版本里程碑才会打破兼容性。你可能熟悉 语义版本控制 ,这 就是我们在所有的 CakePHP 项目中使用的通用准则。总之,语义版本控制意味着只有主要版 本(比如2.0,3.0,4.0)可以打破向后兼容性。次要版本(比如2.1,3.1,3.2)可能会引入新 的功能,但不能破坏兼容性。错误修复版本(比如2.1.2,3.0