我维护一些在runs上运行的遗留代码,它通过网络将插入发送到客户端的Sybase。我们使用Sybase 12.5库,刚刚迁移到使用Sybase 15.0客户端库。
我的应用程序记录它通过网络发送insert的时间以及从目标Sybase获得确认的时间。当使用12.5个库时,时间大约是5 ms,现在的15.5个库大约是50 ms。
我在应用程序端所做的唯一更改就是指定命令行上接口文件的位置。以前,文件位于默认位置-- Sybase安装的位置。现在它位于部署应用程序的位置,因此需要显式地指定位置。
有没有人知道是什么导致了速度的急剧变化,或者暗示了我可以在哪里寻找,或者有关于如何追踪根本原因的想法?
请原谅缺乏技术细节。我不是DB管理员,而是一个开发人员,使用编译后的库连接到Sybase,并且无法访问内部程序。尽管如此,在这两种情况下,我都使用相同的内部库,只有Sybase librairies是不同的。
我的Sybase 12.5和15安装如下所示:
$ ls -l /opt/sybase/
total 48
-rw-r--r-- 1 root root 555 Jul 2 2019 ASE150.csh
-rw-r--r-- 1 root root 259 Jul 2 2019 ASE150.env
-rw-r--r-- 1 root root 388 Jul 2 2019 ASE150.sh
drwxr-xr-x 10 root root 4096 Feb 2 2017 OCS-15_0
-rw-r--r-- 1 root root 555 Jul 2 2019 SYBASE.csh
-rw-r--r-- 1 root root 259 Jul 2 2019 SYBASE.env
-rw-r--r-- 1 root root 388 Jul 2 2019 SYBASE.sh
drwxr-xr-x 58 root root 4096 Jul 2 2019 charsets
drwxr-xr-x 3 root root 4096 Jul 2 2019 collate
drwxr-xr-x 2 root root 4096 Nov 23 20:55 config
-rw-r--r-- 1 root root 1239 Jul 2 2019 interfaces
drwxr-xr-x 5 root root 4096 Nov 23 20:55 locales$ ls -l ~/12_5/sybase/
total 28
drwxrwxr-x 4 oadc oadc 4096 Nov 29 2017 OCS-12_5
drwxrwxr-x 58 oadc oadc 4096 Nov 29 2017 charsets
drwxrwxr-x 2 oadc oadc 4096 Mar 16 09:45 config
drwxrwxr-x 2 oadc oadc 4096 Mar 16 09:45 include
-r-xr-xr-x 1 oadc oadc 1184 Mar 16 09:45 interfaces
drwxrwxr-x 2 oadc oadc 4096 Mar 16 09:45 lib
drwxrwxr-x 5 oadc oadc 4096 Mar 16 09:45 locales编辑
经过进一步的挖掘,看起来OCS-12-5下的库实际上不是针对12_5的,而是针对15_5的!
$ strings /OCS-12_5lib/libsybct*.a AC.26 grep "Sybase Client-Library“Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x 86_64/BUILD1550 1550-003/64 Oct /OPT/Mon 10月5日23:16:48 Sybase客户端-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64 Thread/BUILD1550-003/64 OPT/OPT/Tue 10月6日:06:57 2009
这意味着我的假设12.5快于15.0是错误的。实际发生的是,15.5比15.0快。这更有道理。
我不会去找那个把这些文件提交到一个名为OCS-12-5的目录里的白痴.
发布于 2020-03-17 02:14:53
经过进一步的挖掘,看起来OCS-12-5下的库实际上不是针对12_5的,而是针对15_5的!
$ strings /OCS-12_5lib/libsybct*.a AC.26 grep "Sybase Client-Library“Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x 86_64/BUILD1550 1550-003/64 Oct /OPT/Mon 10月5日23:16:48 Sybase客户端-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64 Thread/BUILD1550-003/64 OPT/OPT/Tue 10月6日:06:57 2009
这意味着我的假设12.5快于15.0是错误的。实际发生的是,15.5比15.0快。这更有道理。
我用这个新信息更新了这个问题。
https://stackoverflow.com/questions/60701285
复制相似问题