Sybase 12.5 与 15.0 客户端连接库:插入 15.7 ASE 时使用 15.0 插入速度慢 10 倍
Sybase 12.5 vs 15.0 client connect libraries: 10x slower insert using 15.0 when inserting into 15.7 ASE
我维护了一些在 RH Linux 上运行的遗留代码,这些代码通过网络将插入内容发送到客户端的 Sybase。我们使用的是 Sybase 12.5 库,刚刚迁移到使用 Sybase 15.0 客户端库。
我的应用程序记录它通过网络发送插入的时间以及它从目标 Sybase 获得确认的时间。使用 12.5 库时,时间约为 5 毫秒,现在使用 15.5 库时,大约为 50 毫秒。
我在应用程序方面所做的唯一更改是在命令行上指定接口文件的位置。以前该文件位于默认位置 - Sybase 安装的位置。现在它位于部署应用程序的位置,因此需要明确指定位置。
有谁知道是什么导致了速度的急剧变化,或者有关于我可以在哪里查看的提示或关于如何追踪根本原因的想法?
技术细节不足请见谅。我不是数据库管理员,而是使用已编译库连接到 Sybase 的开发人员,无法访问具体的内部结构。也就是说,我在这两种情况下都使用相同的内部库,只是 Sybase 库不同。
我的 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!
$ 字符串 sybase/OCS-12_5lib/libsybct*.a | grep "Sybase Client-Library"
Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64/BUILD1550-003/64bit/OPT/Mon 10 月 5 日 23:16:48 2009
Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64 本机 Threads/BUILD1550-003/64bit/OPT/Tue 十月6 00:06:57 2009
这意味着我认为 12.5 比 15.0 快的假设是错误的。实际发生的情况是 15.5 比 15.0 快。这更有意义。
我不会去追捕将这些文件提交到标有 OCS-12-5 的目录中的白痴 ...
经过进一步挖掘,OCS-12-5 下的库看起来实际上不是 12_5 而是 15_5!
$ 字符串 sybase/OCS-12_5lib/libsybct*.a | grep "Sybase Client-Library" Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64/BUILD1550-003/64bit/OPT/Mon 十月5 23:16:48 2009 Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64本机 Threads/BUILD1550-003/64bit/OPT/Tue 10 月 6 日 00:06:57 2009
这意味着我认为 12.5 比 15.0 快的假设是错误的。实际发生的情况是 15.5 比 15.0 快。这更有意义。
我已经用这些新信息更新了问题。
我维护了一些在 RH Linux 上运行的遗留代码,这些代码通过网络将插入内容发送到客户端的 Sybase。我们使用的是 Sybase 12.5 库,刚刚迁移到使用 Sybase 15.0 客户端库。
我的应用程序记录它通过网络发送插入的时间以及它从目标 Sybase 获得确认的时间。使用 12.5 库时,时间约为 5 毫秒,现在使用 15.5 库时,大约为 50 毫秒。
我在应用程序方面所做的唯一更改是在命令行上指定接口文件的位置。以前该文件位于默认位置 - Sybase 安装的位置。现在它位于部署应用程序的位置,因此需要明确指定位置。
有谁知道是什么导致了速度的急剧变化,或者有关于我可以在哪里查看的提示或关于如何追踪根本原因的想法?
技术细节不足请见谅。我不是数据库管理员,而是使用已编译库连接到 Sybase 的开发人员,无法访问具体的内部结构。也就是说,我在这两种情况下都使用相同的内部库,只是 Sybase 库不同。
我的 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!
$ 字符串 sybase/OCS-12_5lib/libsybct*.a | grep "Sybase Client-Library" Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64/BUILD1550-003/64bit/OPT/Mon 10 月 5 日 23:16:48 2009 Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64 本机 Threads/BUILD1550-003/64bit/OPT/Tue 十月6 00:06:57 2009
这意味着我认为 12.5 比 15.0 快的假设是错误的。实际发生的情况是 15.5 比 15.0 快。这更有意义。
我不会去追捕将这些文件提交到标有 OCS-12-5 的目录中的白痴 ...
经过进一步挖掘,OCS-12-5 下的库看起来实际上不是 12_5 而是 15_5!
$ 字符串 sybase/OCS-12_5lib/libsybct*.a | grep "Sybase Client-Library" Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64/BUILD1550-003/64bit/OPT/Mon 十月5 23:16:48 2009 Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64本机 Threads/BUILD1550-003/64bit/OPT/Tue 10 月 6 日 00:06:57 2009
这意味着我认为 12.5 比 15.0 快的假设是错误的。实际发生的情况是 15.5 比 15.0 快。这更有意义。
我已经用这些新信息更新了问题。