Blog Stats
  • Posts - 13
  • Articles - 0
  • Comments - 11
  • Trackbacks - 0

 

Tuesday, May 13, 2008

Full-time MCTs...Less Value?

Do you find that fulltime MCTs (and other teachers) are somewhat limited in their value to students? To me...all teachers should be practicing in the REAL WORLD what they are educating others on! Now before I get any further I can already hear the comments..."what about demos/labs"...Demos & Labs are HARDLY REAL WORLD! In college, I had much the same thoughts..."why is this guy teaching me if he’s so good and not out there DOING IT"?
Personally, I enjoy teaching and even more so I enjoy seeing others learn, but if I only lived in academia my value to any potential students/attendees would be more limited! Why?
1.     I could not relate the technology as well to real world uses and labs/demos
2.     I could not relate to students/attendees when discussing certain pros/cons of architectures or given technologies/platforms.
3.     The bulk (if not all) of my material would be based on others writings and/or probably a limited amount of my own research.
I am by no means saying fulltime MCTs and other teachers do not provide value but when compared to someone who does the actual job in the real world (assuming the real world teacher also has comparable teaching skills) there is NO COMPARISON! And I suppose that is the pro of being a fulltime teacher, your presentation etc. skills should be much better honed but look at the cost!
That’s my 2

Derek

Wednesday, April 30, 2008

SQL Server Magazine May 08' Cover Story: Does SQL Server 2008 BI Merit Upgrade?

Long time no blog!

I authored this month's (May 08') cover story on an interesting topic...Does SQL Server 2008 BI enhancements warrant an upgrade? It is quite the question and to be honest I dont think a 'one size fits all' reply would do the question justice AT ALL! For example, the scalability/performance enhancements found in the relational engine (ie Partioned Table Parallelism & Star Join Query Optimizations) are not applicable for a BI/SQL Server environment if the current cube processing/queries to the underlying schema are performing very well as is! If you do not perform any data profiling nor have any intention to than the new SSIS Data Profiling Task will obviously not be of much use to you or your client organization either! You could counter every new enhancement in the SQL Server 2008 BI stack with a reason why you do not need to upgrade...atleast as of today!

What do you think??? Is there ever such a thing as a 'gotta have' feature found in our beloved SQL Server product? In the context of BI I would say SQL Server 2005 defenitly brought about several close such features but even then (and now) folks are still running SQL Server 2000 based BI systems/environments just fine! So what do you think?

Cheers

Derek Comingore

Sunday, March 23, 2008

Revisiting my book, "Professional SQL Server 2005 CLR Programming"

With the upcoming arrival of SQL Server 2008, the topic of CLR Integration (SQLCLR) is coming up alot again. Probably the biggest reason to use SQLCLR is to replace existing Extended Stored Procedures (XPs). According to SQL Server 2008 Books Online XPs continue to be a deprecated feature:

"This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use CLR Integration instead."

Alot of folks are pinging me about my last book, "Professional SQL Server 2005 CLR Programming" due to SQL 2008's arrival. If you would like to pick up a copy, the book's homepage is located here (click on the picture).

So, as far as I know at this time, no XPs are still not removed in SQL Server 2008, but trust me...THEIR DAYS ARE NUMBERED!

Cheers

Derek Comingore

 

Sunday, March 09, 2008

Growing up with Microsoft SQL Server

A few days ago I turned 30 years old and my how I thought that day would never come, suppose the alternative is much worse though. I've been fortunate enough to make a good living (though I've struggled in my personal aspects of life mainly due to my love for my career and determination) and those i've worked with usually look to me as one of the best in the product end-to-end. Some even think that I am like the guy off of 'Good Will Hunting', hardly the case, the knowledge I have is a result of those that I surrounded myself with, my dedication to life long learning, and a bit of luck. I thank you all for those kind words first off, second I thank Microsoft and the surrounding community for creating such an economical environment for a person to "grow up" in. I've been using SQL Server since version 7.0 in college where I learned the basics of database normalization and Dr. Codd's normalization forms. I do very much enjoy working with the entire Microsoft platform including dev, bi, and system architecture as a whole. Programming is also very near and dear to my heart too, I started out as a programmer on VB/ASP3 with SQL Server once I graduated from college and I continue to enjoy the .Net platform. And I love software/database architecture!

As SQL Server 2008 comes to fruition I simply want to say that its been one hell of a ride and I look to the future optimistically. I went into formalized technology management for a year or so and learned that I can be a great leader but I do need certain skills tuned. Those who naturally look to me for guidance I look back at with appreciation not over confident arrogance. As I have matured so has the product. SQL Server use to be just a basic relational database management system and now we have a million "subsystems" or components that ship with it. SQL Server is now a "data platform" what have you...Through thick and thin, the ups and downs; I would not want my first 8 years out of college and the USAF to be any different. I mentioned earlier that alot of the knowledge I do have is a result of those I've surrounded myself with and beyond technical knowledge alot of these folks have contributed in some part to molding my thinking and thus were mentors in one form or another:

Mike Pendleton, Rick Scero, Tim Landgrave, Steve Campbell, Andrew Sisson, Darren King, Jim Ferrel, Todd Lundsford, Cheryl Boelter,  Jerry Gob, Taylor Norrish, Jim Minatel, Joe Yong, and Joe Simpson.

Most of these people are either executives, successful entrepreneurs or in leadership positions. It is these life/work lessons which are more valuable than the paycheck(s). I thank you all very much. Last but not least I thank my parents and family as they all believed in me even when I did not. I grew up as a low-middle class kid but my family loved me. I left much the same apprecation statements in my Wrox books as these people were even more supportive of me during that time frame!

Onwards

Derek Comingore 

Saturday, March 08, 2008

Real-Time BI? Yes or No? Which is it...

This is probably one of the hottest topics (and has been) in the BI field. A few years ago while working for a major online mortgage company I lead the implementation and design of a very large scale ETL real-time solution that I designed based upon SOA architecture principals. The designs were translated into SQL 2005 Service Broker functionality and overall gave us the kind of ETL speeds we were looking for (up to hundreds of records processed per second). I was not the lead on the SSAS side (my very good friend and colleague, Dan Meyers was) but I believe those cube partitions did use MOLAP and reprocessed a current partition every so often (we also ran an ODS,thus the warrenting of realtime ETL), higher latency than the actual ETL loads. With SSAS Proactive Caching and the ROLAP storage mode you can obtain real-time cubes. In addition, SSIS can directly pipe data into SSAS partitions. There are literally about 4/5 major real-time MSFTBI solutions to enabling end-to-end real-time solutions.

The Service Broker ETL approach was highly controversial to say the least, however several in the upper echelons of the SQL Product group at MSFT were quite impressed with my 'crazy design'. Some would argue that SSIS is the ONLY ETL tool in the MSFT stack? Really, then you obviously have never created ETL Solutions prior to such tools being available? Ever heard of script-based ETL? And I do agree with alot of folks out there that continously executing a DTS/SSIS packages is TOO MUCH overhead for processing a variable amount of records thoughout the day, this is why SOA is huge! Service oriented archtiectures are designed to process/communicate with individual messages.

It certainly did not win me any awards but I was able to meet someone quite special to me out of the deal!  (no it was not Dan mentioned above LOL)

So...what do you think? Is real-time BI worth the effort? Certainly it is difficult to troubleshoot but if the business requires real-time operational reporting then what? *and directly 'hitting' the OLTP server(s) for data is NOT AN ANSWER! Alot of experts in my field provide a blanket response such as "If the business requires real-time then the problem is with the business". I HAVE TO DISAGREE with that statement! If I started up a widget factory I know for certain (especially given that I understand the capabilities of modern-day IT) that I would want real-time BI for my operational reports! How many widgets are getting scraped as of this moment? Is there a problem with a certain 'line' on the factory floor? I'm seeing more and more widgets labeld as BAD in my real-time operational BI system(s)!

The key to doing exceptionally well in the business intelligence field is to put yourself in the shoes of the business owners/executives! This is the highest-order bit in BI. So what do you think? Was I really dropped on my head too often as a child?

For more information on Real-Time Business Intelligence Solutions visit our (ScalabilityExperts's) BI Consulting homepage .

Tuesday, February 26, 2008

SQL Server 2008: The Data Collector, Part 1 of 2

Based on CTP6 (Feb 08' build): Drop me a line and let me know your thoughts and experience with the new Data Collector subsystem!

Its nice to get a few minutes to post a blog, things have been busy (which is good) .  More to come on some other things in a bit...

I want to take a few minutes of your valuable time to give you a brief overview of the new SQL Server 2008 Data Collector (DC) subsystem. This post will be 1 of 2 on the topic of the Data Collecotr with the 2nd part serving as a more detailed tour of the subsystem. Like most new subsystems in SQL Server these days, the DC is composed of several 'lower' layers or platforms in the larger SQL Server product, namely SQL Server Agent and Integration Services (SSIS). So right of the bat, if you are not farily well educated in SQL Server Agent and SSIS you should brush up on those topics first before learning about DC.

Performance Data Warehouses (PDW) are not a new idea, however they are rarely implemented. Why? Because the amount of effort for creating a custom PDW (especially when its a 'pure' DBA doing it, no offense) far outweighs the return on investment or atleast that is the perception generally speaking. Microsoft has recognized this and added a new feature out-of-the-box to allow DBAs to create and populate their PDWs without the need to author complex SSIS/ETL packages or Reporting Services's (SSRS) reports. With just a few clicks in Management Studio (SSMS), one can quickly enable the Data Collector subsystem (disabled by default) and also start the default System Data Collection Sets. The DBA must also configure the Management Data Warehouse (MDW) which is essentially the DC's version of the PDW, that is it serves as the central relational repository for both system and custom Collection Sets from 1 or more target servers.

*DC is only supported on SQL Server 2008 based systems

The System Collection Sets leverage the all three supporte data sources. As the DC subsytem evolves, more data sources are expected to become available such as Windows Management Instrumentation (WMI) among others. When you create a Custom Collection Set you will have to specify which data sources or Collector Type to use. Currently, the DC supports three data sources:

  1. TSQL Queries
  2. SQL Trace
  3. PerfMon Objects/Counters

To create Custom Collection Sets you must leverage TSQL at the moment as SSMS does not support this. According to those at Microsoft, the DC should not (or is suppose to not) consume more than 5% total CPU time on 2008 systems and plan for around 250-350 MB per day of record activity. True activity measures are ofcourse central to each organization's usage but it does give you some ballpark figures to plan with and contemplate. The two key databases that drive the DC subsystem is the MSDB and the MDW. The MSDB contains all or most of the DC's metadata and configuration while the MDW contains (mostly) the actual data collected into 'snapshot' tables.

The DC is a great tool (and start) to enabling out-of-the-box performance data warehouses for SQL Server 2008 database systems. Within just a few minutes a user can configure an OLTP SQL Server 2008 system to collect and upload its collection set defined items to an designated MDW server. There were a few items mentioned in BOL that I could not locate and thus below are some of the items still needed (regardless of if they are in development or not):
1.       Dashboards (if not currently in the CTP6 build, cannot locate it in CTP6)
2.       Fact & Dimensions Tables/DMVs/Cubes (again, if not currently in the CTP6 build)
3.       Better integrated SSRS Reports in Management Studio including multi-server based ones
4.       Management Studio facilitating the creation of Custom Collection Sets (currently must use TSQL)
5.       Integration with the new policy framework of SQL Server 2008
6.       Performance Data Collection on the other SQL Server platforms: SSRS/SSIS/SSAS
7.       Continually consume less system resources per SQL Server build/product iteration

Resources

  1. http://blogs.msdn.com/sqlrem/archive/2008/01/17/performance-studio-for-sql-server-2008-revealed.aspx
  2. http://sqlblogcasts.com/blogs/jasonmassie/archive/2008/02/15/sql-server-2008-performance-data-collection-in-5-minutes.aspx
  3. http://sqlblogcasts.com/blogs/jasonmassie/archive/2008/02/15/creating-a-custom-data-collection-in-sql-server-2008.aspx
  4. SQL Server 2008 BOL

Cheers

Derek

Tuesday, February 19, 2008

Migrating DTS to SSIS 2008

Hi Guys,

I've pushed two solid posts on DTS to SSIS 2005 or 2008 on Scalability Expert's App Compat blog as of late. We have done some good work in the SQL2008 space and the blog contains some of our results, thoughts, etc... The DTS to SSIS posts are:

  1. The Key SQL Server 2008 BI Migration: DTS to SSIS 2008, Part 1 of 2

  2. The Key SQL Server 2008 BI Migration: DTS to SSIS 2008, Part 2 of 2

Enjoy and please feel free to ask any questions/comments. The best way to learn is from other's questions/inputs 

Derek C.

Wednesday, February 06, 2008

MCA: BI ...Right Here, Right Now! VOTE!

The time has come, Gartner just ranked MSFT as the #1 BI stack, end-to-end! As a very recent MCITP: in BI where do I go now? Wait for SQL Server 2008? Why! I'm not certified as a BI Architect!

For the time being, I have submitted a SQL Server 2008 Connect Suggestion on this at https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=327537 

PLEASE VOTE IF YOU AGREE, IF NOT DISAGREE! SPEAK OUT THOUGH REGARDLESS!



Description
MCA: BI!!!

We need a MCA (ranger) program for the next generation of SQL Server Professionals, BI! As a very recent MCITP in BI where am I to go to become certified as a BI archtiect? Certainly the 70-446 is getting there as its more business driven, but there were no boards, no month onsite in Redmond...no BI Architect Program.

BI is on every CIO's 'wish list', more and more professionals are entering the space, and the market has consolidated considerably.

Derek Comingore
MCDBA/MCAD/MCTS/MCITP/PSP

Tuesday, February 05, 2008

Sincere Thanks & MSFT Exam Week

I wanted to take a post and thank everyone who has helped me with getting this blog up and also those who are visiting it frequently. So I would like to thank the following individuals for helping me:

  1. Rick Heiges, a colleague at Scalability Experts and PASS Director http://sqlblog.com/blogs/rick_heiges/default.aspx
  2. Bill Graziano, owner/runs this website and also PASS Director http://weblogs.sqlteam.com/billg/

As mentioned, also a big THANK YOU to all of you who've visited my blog! And by the way, please fell free to ask me any SQL Server related questions you may have. Like most, I get better with your questions and feedback

Maybe I should have named my blog 'SQL Server 2008 BI' LOL...the fact that the majority of my blog's content thus far is on Katmai is because of timing, I'm working fulltime off and on in SQL 2008 for my employeer unlike most who can simply 'play' as they have time. Overtime, I do intend to get more PPS & other MSFT BI Product information in here.

Ah yes, the Microsoft Exams, I was just commenting on this over at a fellow bloggers recent post http://weblogs.sqlteam.com/markc/archive/2008/01/31/60479.aspx . Currently, I have passed (along with a 'load' of others in the past) my 70-445 and am slated to take the 70-446 tomorrow morning bright and early. I would like to say here that its OK TO FAIL. These exams are not easy (if they were what would be the value in getting certified), and depending upon which exam there could be a large amount of information it covers. I have passed around 8-10 exams over my years but I did fail the first and my 70-445 on my first attempt. I then went back in and completed the 70-445 very soon again and I blew it away (good thing...seen some of those questions twice ) . Point is, don't get so down on yourself because you failed. I am the WORSE at doing this as I put so much pressure on myself but its OK TO FAIL. If you pull yourself up and study in the areas you did poorly in (score report or not....you know where you 'missed the bus') you will pass!

Thanks for listening to my ramblings and THANK YOU FOR COMING

Derek

Thursday, January 31, 2008

Grouping & Aggregating Relational Result sets in SQL Server 2008: GROUPING SETS and then some…

Microsoft SQL Server 2008 introduces several enhancements & changes to how we group and aggregate relational result sets in TSQL. What follows is a simplistic listing and overview of the grouping/aggregate changes we are seeing in Microsoft SQL Server 2008 CTP5:
1.       New GROUPING SETS Operator
2.       ROLLUP & CUBE Operator Syntax Changes
3.       New GROUPING_ID() Function
 
GROUP BY Operator Addition: GROUPING SETS
The first and most noted change in how we can perform relational grouping is the GROUPING SETS operator addition to the GROUP BY clause. This new operator allows you to perform several grouping set in one query. The older equivalent of this functionality is to perform several GROUP BY queries and then perform a UNION ALL between them. The GROUPING SETS operator supports concatenating column groupings and an optional grand total row. GROUPING SETS can be used in conjunction with the ROLLUP & CUBE operators (which we will use the new syntax described below for ROLLUP|CUBE). Below is some sample TSQL code to demonstrate this functionality:
 
*All sample code requires the AdventureWorks & AdventureWorks DW sample databases.
 
USE AdventureWorksDW;
GO
--------OLD METHOD, UNION ALL
SELECT NULL AS [ProductKey], OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY OrderDateKey, DueDateKey, ShipDateKey
UNION ALL
SELECT ProductKey, NULL AS [OrderDateKey], DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY ProductKey, DueDateKey, ShipDateKey
UNION ALL
SELECT ProductKey, OrderDateKey, NULL AS [DueDateKey], ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY ProductKey, OrderDateKey, ShipDateKey
UNION ALL
SELECT ProductKey, OrderDateKey, DueDateKey, NULL AS [ShipDateKey]
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY ProductKey, OrderDateKey, DueDateKey
GO
--------NEW METHOD, GROUPING SETS
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY GROUPING SETS(ProductKey, OrderDateKey, DueDateKey, ShipDateKey);
GO
--------NEW METHOD, GROUPING SETS w/Grand Total Row (record #1125 is the grand total row)
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY GROUPING SETS(ProductKey, OrderDateKey, DueDateKey, ShipDateKey, ());
GO
--------NEW METHOD, GROUPING SETS w/Composite Columns
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY GROUPING SETS((ProductKey, OrderDateKey), DueDateKey, ShipDateKey);
GO
--------NEW METHOD, GROUPING SETS w/ROLLUP Composite Columns
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY GROUPING SETS(ROLLUP(ProductKey, OrderDateKey), DueDateKey, ShipDateKey);
GO
--------NEW METHOD, GROUPING SETS w/CUBE Composite Columns
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY GROUPING SETS(CUBE(ProductKey, OrderDateKey), DueDateKey, ShipDateKey);
GO
 
GROUP BY Operator Syntax Changes: ROLLUP & CUBE
Next up are the changes in the ROLLUP|CUBE operators' syntax. These operators produce aggregate groupings and are appended to the GROUP BY clause. Prior to SQL Server 2008 you would specify WITH ROLLUP|WITH CUBE. In SQL Server 2008, you will first designate ROLLUP|CUBE and then pass the grouped columns into these operators. Below is some sample TSQL code to demonstrate this functionality:
 
USE AdventureWorksDW;
GO
--------OLD METHOD, WITH ROLLUP
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY ProductKey, OrderDateKey, DueDateKey, ShipDateKey WITH ROLLUP;
GO
--------NEW METHOD, ROLLUP()
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY ROLLUP(ProductKey, OrderDateKey, DueDateKey, ShipDateKey);
GO
--------OLD METHOD, WITH CUBE
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY ProductKey, OrderDateKey, DueDateKey, ShipDateKey WITH CUBE;
GO
--------NEW METHOD, CUBE()
SELECT ProductKey, OrderDateKey, DueDateKey, ShipDateKey
    ,SUM (SalesAmount) AS [Sales]
FROM dbo.FactInternetSales
GROUP BY CUBE(ProductKey, OrderDateKey, DueDateKey, ShipDateKey);
GO
 
New Function: GROUPING_ID()
Last but not least, there is a new function, GROUPING_ID which returns the level of grouping for a particular column. This function is an enhancement from the older GROUPING() function. GROUPING() returns a 0 or a 1 to indicate if the column is aggregated or not. Below is some sample TSQL code to demonstrate this functionality:
 
USE AdventureWorks;
GO
SELECT
     D.Name
    ,GROUPING_ID(D.Name, E.Title) AS [Name_Title_GroupID]
    ,GROUPING(D.Name) AS [Name_GroupAggregated?]
    ,GROUPING(E.Title) AS [Title_GroupAggregated?]
    ,COUNT(E.EmployeeID) AS N'Employee Count'
FROM HumanResources.Employee E
   INNER JOIN HumanResources.EmployeeDepartmentHistory DH
        ON E.EmployeeID = DH.EmployeeID
    INNER JOIN HumanResources.Department D
        ON D.DepartmentID = DH.DepartmentID    
WHERE DH.EndDate IS NULL
    AND D.DepartmentID IN (12,14)
GROUP BY ROLLUP(D.Name, E.Title);
 

 

Copyright © Derek Comingore