gpt4 book ai didi

delphi - 自己的应用程序内部查询调用与高级数据库架构师之间的优化差异

转载 作者:行者123 更新时间:2023-12-03 17:59:41 25 4
gpt4 key购买 nike

我目前正在使用 sybase 的优势数据库服务器。我在 delphi 中编程,我使用的是本地服务器。我的问题是,如果我在自己的源代码中进行 sql 查询,查询速度会慢 3 倍(尤其是对于嵌套的 Select 查询),就好像我也会在 sybase 提供的 Advantage Database Architect 中使用完全相同的查询一样。数据库也一样。是否缺少任何优化步骤?

我的源代码是这样的:

  //Initializing Connection and Query
FADSConnection.LoginPrompt := false;
FADSConnection.ConnectPath := Filename;
FADSConnection.AdsServerTypes := [stADS_LOCAL];
FADSConnection.Name := 'ADB';
FADSConnection.EncryptionOptions.DataEncryptionType := etAdsAES256;
FADSConnection.IsConnected := true;


FADSQuery.DatabaseName := FADSConnection.Name;
FADSQuery.SourceTableType := ttAdsADT;
FADSQuery.AdsTableOptions.AdsCharType := GERMAN_VFP_CI_AS_437;

s := 'SELECT *'
+ 'FROM ADB_Table1 WHERE No IN'
+'(SELECT No'
+ 'FROM ADB_Table2 WHERE V=0.4 AND N=26 AND No IN'
+ '(SELECT No FROM ADB_Table2 WHERE V=0.6 AND N=8)) AND Count=2'

FADSQuery.sql.Text := s;
FADSQuery.Open;
FADSQuery.first;

在我的程序中查询需要 600 毫秒。在优势数据库架构师中,它需要 200 毫秒。该数据库有大约 18000 个条目。

提前致谢!

最佳答案

所以,我发现了我的错误:

问题是查询实例的初始化。不需要以某种方式过度使用源表类型和 AdsCharType。

FADSQuery.SourceTableType := ttAdsAdt;
FADSQuery.Tableoptions.AdsCharType := GERMAN_VFP_CI_AS_437;

我刚刚删除了上面的行,我的查询几乎和 Advantage Data Architect 一样快。

关于delphi - 自己的应用程序内部查询调用与高级数据库架构师之间的优化差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8209582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com