Please be aware that the content in SAP SQL Anywhere Forum will be migrated to the SAP Community in June and this forum will be retired.

We moved a SQL Anywhere 12 database from a dedicated windows 2003 SP2 server to a new virtual machine running windows 2012 R2 SP1 server.

Windows 2003 server specs: 6134 MB memory 8 cores SQL Anywhere 12.0.1 build 3910

Windows 2012 server specs: 16384 MB memory 8 cores SQL Anywhere 12.0.1 build 4403

From another database we use proxy tables to this database to fill the database. On the windows 2003 server this takes 2338 seconds On the new windows 2012 server this takes 3867 seconds

I would expect that it would run faster on the new machine or at least at the same speed.

It must be something in the setup of the windows 2012 server. Does anyone have a clue where I should look?



asked 02 Nov '16, 05:34

Frank%20Vestjens's gravatar image

Frank Vestjens
accept rate: 21%

edited 02 Nov '16, 06:01

Volker%20Barth's gravatar image

Volker Barth


Did you change the storage for the DB ? The Disk performance in VM's is normally not as fast as direct access on a dedicated server.

(02 Nov '16, 05:40) Thomas Dueme...
Replies hidden

No, I just moved the database file.

What should I change?

(02 Nov '16, 06:41) Frank Vestjens

As a prompt check, I'd suggest to try any RAM Drive to improve I/O (if your DB file size is less than ~12 GB). Plus you can measure the HDD speed with CrystalDiskMark and compare the result.

Usually Breck says that the performance analysis should be done from the beginning, e.g. how much data is transferred, what is the execution plan, how much time does SA spend to go through the records, what is about the cache size etc.

Another thing is to compare the network speed (latency + bandwidth). E.g. I use LAN Speed Test (Lite) or iPerf.

(02 Nov '16, 06:46) Vlad

That's what I mean. The dedicated server had probably local attached storage that he could use exclusively. Now in a VM setup the VM has to share the access to the physical disks with different VM's running on the same Host. And the Disk in your VM is probaly a file stored in a network share. This will all limit the speed of SQLA.

(02 Nov '16, 08:17) Thomas Dueme...

I support Vlad's suggestion to check the network performance. If you don't have a system tool, you may simply retrieve all rows from the proxy tables (or some or one of them) e.g. by querying them in dbisql and outputting the result to a file (or the nul: device). It also may be interesting to connect directly to the back-end with dbisql (using ODBC if it's not SQL Anywhere or IQ) and measure the performance when querying the remote table directly (again with OUTPUT), which for reasons I fail to understand I've occasionally observed to be faster than the transport from remote server to SQL Anywhere server via proxy table.


Volker Stöffler DB-TecKnowledgy

(02 Nov '16, 16:18) Volker DB-TecKy

What is your license ? If you have a chip license and configured the vm with cpu instead cores than your affinity ist on only one cpu. Go to taskmanager -> rightklick on dbsrv12.exe and select Set affinity. The you see on how many cores the db is running.

permanent link

answered 03 Nov '16, 03:27

dnichterwitz's gravatar image

accept rate: 0%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 02 Nov '16, 05:34

question was seen: 1,947 times

last updated: 03 Nov '16, 03:27