【问题标题】:How is TClientDataSet sending SQL statements on ApplyUpdatesTClientDataSet 如何在 ApplyUpdates 上发送 SQL 语句
【发布时间】:2013-08-13 07:01:37
【问题描述】:

我想知道,当ApplyUpdates 被调用时,TClientDataSet 是如何执行 SQL 语句的。

如果有多个记录发生更改,是否为每条记录准备更新 SQL 查询并将其作为单个 SQL 语句发送,或者是否创建了 SQL“脚本”并立即发送到数据库?

我的意思是,当我 ApplyUpdates 进行非常记录的更改时,与 ApplyUpdates 一次进行所有更改相比,是否存在性能差异?

【问题讨论】:

    标签: delphi tclientdataset


    【解决方案1】:

    客户端不发送 SQL,只发送增量数据包。服务器上的提供程序接收到增量数据包,并根据它生成插入/更新/删除 SQL 语句。在单个请求中发送多个更新通常会带来更好的性能。

    【讨论】:

    • 谢谢。 Provider 是否为每个 delta 包创建单个 SQL 语句?他会一个接一个地发送到数据库吗?
    • 这取决于您使用的提供商及其选项。在 TDataSetProvider 的情况下,它还取决于数据集。详情见源码(以Provider单元开头)。
    • 您应该使用 sql monitor 来预览提供程序如何构建删除/更新/插入 sql 语句...
    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多