|
||||||
![]()
|
||||||
|
| [ Login | Enhancements Process | Newsletter | Techcasts | Technical Journal | Jobs | PB Training | Sybase FAQ | Technical Resources | Tools ] |
Paul Vero uses his extensive knowledge of the Sybase Technical Support environment to bring ISUG Technical Journal readers an essential guide to the inside workings of the Tabular Data Stream protocol.
When developers and DBAs hear the words “TDS” used by Technical Support, their typical reaction is one of cringing recoil. Those who are fluent in several programming languages and who have a knack for ‘bit-fiddling’ can appreciate the intricate details of the TDS protocol; but to others, it's an undecipherable beast and they avoid it like the plague.
My goal in this article is to dispel some of the myths behind TDS. I truly believe it is a valuable tool and if you understand how to read and utilize it, you'll gain further insight into the client and ASE, via the use of the Ribo TDS tracing utility. We'll start with an overview of TDS, get into the Ribo details, discuss some practical uses of TDS and cover some of the important TDS tokens.
Acronym appreciation
The acronym TDS stands for Tabular Data
Stream. When Sybase created its SQL
Server in 1986, it created the TDS protocol
for client-to-server communication.
TDS is an application layer protocol
that sends requests from the clients and
receives responses from the server. One
of the earlier versions was 4.0.
To develop applications to utilize the database server, Sybase also developed an API, Db-Library providing code to connect, execute SQL and process the result responses of the commands. Along with Db-Library, Network Library (or “netlib”) provided the network transport required to deliver the requests from Db-Library to the database server. The API layer sends the commands as a structured stream of bytes meant to access the data stored in the tables in the relational database, hence the Tabular Data Stream.
Later on (about 1990) Sybase partnered with Microsoft in a technology sharing agreement. TDS 4.2 was developed at that time and used by Microsoft for its SQL Server running on Windows – and also by Sybase for its UNIX version of the server. The agreement between the two companies ended around 1993.
ASE 15's Data Partitioning option will also provide an overall performance boost. Queries will run against smaller ‘pieces’ of data and the optimizer and query processor know what data values are on an individual partition and will avoid reading any that don't contain the required data.
What can Data Partitions in ASE 15 do for you?
There are some of very good reasons to
implement the ASE 15 Data Partitions
option. For a start, it can make your data
management easier and boost your overall
performance.
Let's be honest, you don't like wasting your time waiting around for the right moment to run simple and boring database maintenance jobs. You don't like lying in bed hoping the phone will ring with news that an update statistics job won't finish until lunchtime the next day. You have better things to do with your work and free time. So you're naturally interested in anything that might make your database maintenance tasks more efficient and reliable.
ASE 15's Data Partitioning option can put you in control of ever shrinking database maintenance windows. But wait! There's more!
Yes size really does matter when you are talking about a client-server application, a web server, or an application server communicating with a Data Base Management System! This is an area that is often overlooked when designing very large application systems that can potentially generate an excessive amount of concurrent users, heavy database transaction loads, complex queries, large data stream content or even a mixture of the above.
Recently, I had the opportunity to put this subject under the magnifying glass when tuning up a client's ASE (Application Server Enterprise) database that was operating at over 1 million input / output requests per hour. The ASE server was receiving requests from PowerBuilder native Windows applications, JSP and ASP.Net web pages and EAServer (Sybase's application server) clusters.
Heavy Workloads
The transaction mixture was diverse from
small single row queries to complex medium
sized result set queries and large Binary
(Blob) requests. These query transactions
often progressed into an impressive
amount of small to medium sized updates
back to the DBMS. Add to this a web
activity figure of over 10,000 users or
500,000 sessions per hour, plus EAServer
logging messages into its Message Queue
table in ASE, and PDF files being saved
and retrieved into Blob columns – and you
can imagine the workload on the DBMS!
In this article I will outline the approach I took, the test findings and the final results of the modifications to the various application designs and performance model changes that were observed. I would also like to mention that this aspect of performance tuning is not restricted to Sybase's ASE DBMS. The various approaches, anticipated and finally observed changes to the performance aspects can be achieved with any application written in other languages like Java, C#, VB etc and DBMS's from vendors like Oracle, IBM, Informix, Microsoft etc.
The latest version of Replication Server includes a long-awaited piece of functionality. Mike Harrold takes us on an in-depth tour of this new feature
There's a time in every Replication Server administrator's career when the stable queue inexplicably fills up at an extremely rapid pace, triggering alarms, late-night pages and impatient managers the next morning demanding to know what happened. Usually it takes just a moment to determine that a seemingly innocuous delete or update issued at the primary side of the replication topology is the cause of the problem. It's a simple answer, but one which begets the inevitable managerial question, “How do we stop it from happening again?” To answer this, we need to take a much closer look at what really occurred.
So What Did Happen?
Well, simply put: when a SQL command
is issued, ASE writes a series of log entries
for each row that is affected. So, a command
that affects a million rows creates a
million log entries, which are subsequently
written to the log. (There's a good reason
we use truncate table rather than delete T !)
The RepAgent in ASE that is reading
the log then sends a million transactions
to the RepServer, which in turns sends
them to the destination. This is one simple
command, creating absolute havoc.
PowerBuilder
First up, in January and February were the PowerBuilder
Seminars. We visited six cities in all: Dallas, TX; Houston,
TX; Pittsburgh, PA; Columbus, OH; Atlanta, GA; and
Seattle WA, with a full day of PowerBuilder content, split
into two parts.
IQ Appliance
Following on from the PowerBuilder seminars were the
“Extreme Analytics Workshops”, highlighting Sybase's IQ
Appliance. For those not familiar with this product, the
appliance is an IBM hardware environment, preconfigured
with the Sybase IQ Data Warehouse and MicroStrategy
Dashboards
As an organization, ISUG takes an even handed approach to encouraging individual members, partners and Sybase staff alike to contribute towards the “information-ecosystem” that comprises ISUG's vault of resources. In this easy-to-digest guide to structuring and submitting your first piece for print, ISUG editor Adrian Bridgwater offers a few hints and tips to help you get your name on the page and make your work shine.
Here's an idea, have a point!
There's a great line in Trains, Planes and
Automobiles where Steve Martin says to
John Candy's boorish oaf of a character,
“Here's a good idea – have a POINT. It
makes it SO much more interesting for the
listener!” You know what though? That's
not bad advice if you are taking your first
steps (or even your still-faltering second
steps) towards producing content that will
ultimately end up in a published format
that can be reviewed by your peers and
your contemporaries. Think about why
someone else would want to read your
work and how you can make what you
write thought-provoking enough to hold
the reader's interest to the last paragraph.
Say, Say, Say
So how to start out? Well, a marketing
person will tell you that if you want to
present an idea successfully you need to
take the following approach:
Now that might sound simplistic, but hopefully it conveys to you the importance of setting out your stall first, delivering your message and then summarising with an overview of what you have just said.