首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASYNC_IO_COMPLETION和IO_COMPLETION等待类型有什么区别?

ASYNC_IO_COMPLETION和IO_COMPLETION等待类型有什么区别?
EN

Database Administration用户
提问于 2020-09-25 10:54:11
回答 1查看 422关注 0票数 4

有人能解释一下这两种等待类型的主要区别吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-09-25 12:16:46

我认为您首先应该理解Sync和异步IO之间的区别。有关这两个I/O的基本性质的信息可以在鲍勃·多尔的I/O演示博客中找到,请参阅异步与同步IO一节。

在非常简单的意义上,异步IO是指在输入/输出请求之后,程序或调用代码不会等待I/O操作完成,而是会忙于其他任务,稍后它可以来检查I/O请求是否已经完成。类似地,对于Sync,调用代码将等待确认I/O请求已经完成。引用鲍勃·多尔的博客

在Windows中,I/ APIs允许同步和异步请求。同步请求是对API (如WriteFile )的调用,在操作完成之前不会返回对调用代码的控制。异步将请求传递给操作系统和相关驱动程序,并将控制返回给调用代码。调用代码可以自由地执行其他逻辑,稍后再回来查看I/O是否完成。Server主要使用异步I/O模式。这允许Server读写页,然后继续有效地使用CPU和其他资源。以大型排序操作为例。Server可以使用其预读逻辑发布(异步请求)多个页面,然后开始处理请求返回的第一个页面。这允许Server使用CPU资源对页面上的行进行排序,而I/O子系统同时在其他页面中获取(读取)。最大限度地利用I/O带宽,更有效地利用其他资源(如CPU )。

现在,这里的等待时间表示等待异步/同步IO请求完成所花费的时间。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/276074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档