• subscribe
March 17, 2003 12:00 AM

Preparing for Yukon

SQL Server Pro
InstantDoc ID #38139

Yukon is still a ways off, but it's not too early to start preparing for the dramatic changes the new SQL Server release will bring—especially those associated with Microsoft's .NET Common Language Runtime (CLR). SQL Server 7.0 transformed SQL Server's underlying database-engine architecture, but the way that DBAs manage the server remained essentially the same. You still use Enterprise Manager for multiserver management and T-SQL to create and update databases and their objects. Although Yukon features the same underlying architecture, the release has big changes in store for DBAs.

With Yukon's CLR integration, you'll be able to use languages other than T-SQL to create database objects and retrieve and update data. T-SQL isn't going away, and some DBAs might try to simply ignore the new .NET languages they find in their toolbox. However, learning about the .NET Framework and the CLR will help you support the third-party applications that are certain to adopt these language enhancements and will help you understand where the enhancements can improve your own application and database performance.

You can start preparing for Yukon today by learning about the .NET Framework, its ADO.NET data-access object layer, and at least one of the .NET languages. The big language question is when should you use these new languages as opposed to T-SQL? To determine the best places to use a .NET language, you first need to investigate the characteristics of each alternative. For example, T-SQL is a powerful procedural language well suited to data retrieval and manipulation. However, T-SQL is weak in the areas of structure, flow control, and reusability, so applying T-SQL to problems that require complex logic is difficult. Object-oriented .NET languages such as Visual Basic .NET and C# provide adequate data-manipulation capabilities by using ADO.NET to execute SQL statements. But their strong points are structure and flow control, making them well suited for solutions that require complex logic. So, in general, T-SQL is better suited to raw data retrieval and modification, and the .NET languages are better suited to enforcing business rules.

The next step in preparing to take advantage of Yukon's language enhancements is to determine whether your existing stored procedures, triggers, and user-defined functions (UDFs) are primarily data-oriented or whether they implement business logic. If your procedures contain complex logic, you can begin expressing that logic in pseudo code, which will act as a guide to writing more-effective CLR stored procedures later. Or if you have Visual Studio .NET and are familiar with a .NET language, you could even begin rewriting the procedures in that language. You should also review your database design to see where your applications' data-access objects reside. With SQL Server's CLR integration, you'll be able to move your data-access objects from the data tier to the server, which could significantly boost your applications' performance.

You might not be able to roll out these procedures for a while. But time has a way of creeping up on you, and Yukon will be here before you know it. Nothing would put you in a better position to hit the ground running with the next release of SQL Server than to evaluate when and where to use the new CLR languages in your environment.



ARTICLE TOOLS

Comments
  • Uday Shivamurthy
    9 years ago
    Mar 27, 2003

    Michael,
    Just wanted to thank you for enlightening us with this summary on YUKON. I have a few points/questions for you. I've been working with SQL Server now for over 5 years and have been selling myself [successfully!]as a DBA, but, I feel I cannot take this "purist" approach anymore. I've been pro-active and picked up apps development using the .net framework. Now, if I see where I stand in the job market, I belive I've beomce a "jack of many trades". Do you have any advice to offer to people with my profile to remain effective in this job market.

    Regards
    Uday

  • James Rowland-Jones
    9 years ago
    Mar 27, 2003

    Whilst I take the point that having an eye on the future is an important aspect of having a successful career in IT I have to confess to being confused by this latest strategy and how it maps to advancing hardware technology.

    On the one hand there is the scale out blade architecture for webservers and CMP/SMP scale up for database servers and on the other there is the Server Consolidation market where shared resources matter most.

    What I am struggling with is why would you want to place your business logic in the database layer with all the risks that this potentially entails on either platform. The whole point, as I understand it, of the scaled out front end is to ensure that the business layer stays outside of the data layer providing almost limitless scalability (extreme performance anyone? :-)). The back end would then service data requests the results of which could be cached in the web servers for further optimisation.

    Those choosing to implement a solution using application code in the data layer would also have to be concerned about the ease with which a poorly performing component would end up in the data layer where the cost per cycle is much greater than that at the front end. This would add significant cost to those trying to save money by consolidating their environments. This is without having to also assess the risk of application code being run inside sql servers address space (although I am sure it will also be possible to avoid this but it will probably be down to the developer in question to avoid this).

    The one area where I have seen something similar to this approach is on the mainframe. To me, it is reminiscent of embedded SQL in COBOL bound to a DB2 RDBMS. Wintel mainframes - is this the kind of approach Microsoft is intending to steer its community?

    Personally, my main concern is that SQL Server could ultimately be viewed as a poor performing RDBMS - not because of SQL Server itself but due to the way in which applications will have been written.

    The other point I would like to raise is that this does sound awfully like empowering the developer to write their own XPs. I thought that Microsoft had exerted plenty of energy in minimising this aspect of SQL Server and have noticed their dwindling support since 6.5. Furthermore, I can't help but feel that this kind of exposure of SQL Server can only serve to make it more vulnerable to hackers etc.

    Whilst I appreciate that it is still early days for Yukon I for one would like to know much more about how Microsoft intend for this area of the technology to be utilised.

  • ganesh
    9 years ago
    Mar 21, 2003

    Being a SQL DBA, VB, VC++ Developer, I would like to share my views. I accept that VB and VC++ have got more looping constructs and flow of control mechanisms. But T-SQL definetly does not fall in short of flow of control and reusable components. It has got loops, if-then-else, case statements and cursors to implement all sorts of flow of control logic. Also the new user defined functions and stored procedures provide complete set of reusable components. With these features definetly we can keep and implement all complex business logic in stored procedures, user defined functions and triggers rather than VB.net or ADO.net CLR language. T-SQL implementation will be definetly faster than its front end counterparts. Also maintenance is very easy. For example if there is a change in business logic, in a matter of seconds we can change in T-SQL stored procedures rather than changing and fully compiling the front end code which is generally much much larger than back end coding. This is exactly applicable for most of the production environments today. Becuase they are being implemented by vendor or third party applications where we will not have source code for front end but definetly we will have back end source code. This can be done by support people who knows basic SQL rather than to hire a developer. Also nowadays all major database vendors adapt ANSI SQL, so there will not be any issue with portablility. I feel we should plan to use the best of both worlds depends on the applications instead of completely shifting from one to another. In Oracle world, PL/SQL is still being used widely for most of the complex business logic though Oracle 8i supports java based stored procedures. I feel a solid example will be more useful instead of biasing towards a particular technology based on theoritical and marketing hype.

You must log on before posting a comment.

Are you a new visitor? Register Here