ASE Migration Solved: Prepared Statements and ASE 15.x
I have been involved for the past two months in analyzing migration problems of two large local ASE sites. I decided to share with you the things discovered during the failed ASE 15 migration analysis so that if you happen to be in a similar situation you may discover the way out with less pains.
For these customers, migration to ASE 15.0- ASE 15.5 has been a painful fiasco for two consecutive years. Cases have been opened. Professional Services have been sent on site. A lot of work have been done on rethinking and rewriting code for the new optimizer whims. Tears, money, and what not shed all through the process.
The truth is, Sybase TS has been telling us for years that we have bad code, and we – as customers or support teams – were each time infuriated by the insolence of telling us this. I cannot say that TS has been completely wrong. I can say, however, that were we thinking more WHAT is so peculiar about our code rather than WHY are we told that our code sucks we might have spared ourselves a lot of pain.
I will not write you a detailed report on what we have found here – it will require a lot of pyrotechnics to make things legible here. Rather, I attach you the report of the study. You may download it and read at your leisure. I think it is worth the pains. Who knows, may be it will solve migration problems for more customers out there. Local customers were not SO peculiar after all.
Here is the link: Migration to ASE 15 – 2 Case Studies Involving Prepared Statements.
For those who have little time reading this, let me just warn: if you use prepared statements in your application code – awares or unawares – beware. You may be paying very high penalty for this. Especially in ASE 15 that has been made to work fast – sometimes very fast. The penalty may be so high that you will consistently fail migrating your old ASE 12.5.x servers to ASE 15 without knowing that the solution is so close.
Here a preview of some data:
Have fun reading this. I have had a lot of fun digging up the roots of the failed migrations (using my own tools, to be sure, and writing new ones along the way).