В данный момент я работаю с сервером базы данных преимущества от sybase.Я программирую на Delphi и использую локальный сервер.Моя проблема заключается в том, что если я сделаю SQL-запрос внутри собственного исходного кода, запрос будет в 3 раза медленнее (особенно для вложенных запросов Select), как если бы я использовал точно такой же запрос в Advantage Database Architect, также поставляемой sybase.База данных также одинакова.Есть ли какой-то шаг оптимизации, который мне не хватает?
Мой исходный код выглядит следующим образом:
//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 записей.
Заранее спасибо!