SQL Server Standard Article Abstracts

January 4, 2010 at 11:09 am (sql server standard) (, , , )

I’d really like to publish your article in SQL Server Standard. All I need from you is an abstract, a description of what the article will be. I’ve posted this before, but I’ve never provided examples. So, to get people started, here are a few examples of articles that have been accepted and will be published (shortly I hope).

Here’s a great example from Andy Leonard. It includes a great amount of detail, more than I need to make my decision, but with this much detail, the decision is much easier because I know exactly what this article is likely to look like:

   I’m interested in writing an article on SSIS for SQL Server Standard. I’d like to cover ways packages can exchange information at run-time. There are a couple obscure ways parent-child packages interact that make for some interesting design opportunities and architectures – especially when combined. For example, most SSIS developers realize Events “bubble” up through EventHandlers; so that if a Control Flow contains a Sequence Container which contains an Execute SQL Task, an error generated at the Execute SQL Task will raise the tasks’ OnError EventHandler, then the Sequence Container’s OnError EventHandler, and finally the OnError EventHandler of the package. What’s not so well know is: If a package calls another package via the Execute Package Task, the calling package is said to be the parent (or master) package; the called package is the child. In this scenario, events raised in the child at the package level will bubble to the parent package.
   The second obscure behavior is variables in the parent package are inherited in the child package. The cool thing is: they’re inherited ByRef – unlike parent package configurations, which pass variable values ByVal from parent to child. ByVal is one-way communication; ByRef is bi-directional, which means I can make a change to a variable in the child package and that change will persist in the parent after the child package has completed executing.
Here’s one from Sam Bendayan. It’s sharp and clear and defines the article in a way that I can understand what will be covered. It’s shorter than Andy’s, but it’s still enough:
It is common knowledge that Application Programmers and DBAs don’t get along in many cases, and the root of this is that the two technologies are fundamentally different.  It is also common knowledge that many Application Programmers write SQL as part of their job.  However, often their familiarity with loop-based programming is their undoing, taking them down strange SQL paths that produce bad SQL code and make their relationship with the DBAs even worse.  This article will show how difficult the transition is, even if it doesn’t seem to be at first, and how you have to adjust your thinking in order to successfully program in T-SQL.
And finally, one from Michelle Ufford. This is the most concise example and I would be less likely to accept it if I didn’t already have a good working knowledge of Michelle, her abilities and skill set. But still, this is enough:
In this article, I will give you a practical overview of how to design effective partitioning schemes.  I will cover good partitioning design, the differences between aligned and non-aligned indexes, and some examples of when to use each.  I’ll also discuss some issues to be aware of when designing partitioning schemes, including performance, replication, and sliding-window considerations. 
If you’re waiting because you think putting together the abstract will be as much work as the article itself, it won’t be. Four or five sentences that clearly define a topic that can obviously fill out 3000+ words is all that’s needed. At this time we’re only accepting articles from writers with some experience, but nothing extensive (previous articles in a technical reviewed publication or three articles in a peer-reviewed publication or a book). Send the abstracts to grant.fritchey@sqlpass.org.

Permalink Leave a Comment

Article Ideas, specifically on SQL Server 2008

June 23, 2008 at 7:58 am (Misc, SQL Server 2008) (, , )

I’m trying to come up with some ideas for an article (or six) on SQL Server 2008. I know I’m getting about 40 views a day on this blog. That must translate to about 20 users (the statistics on this site aren’t clear, so I’m guessing). Do any of you have any good questions about new functionality in SQL Server 2008? I’ve been thinking about looking at sparse columns and filtered indexes or maybe the spatial data types. Those are the topics I’m most excited about as a database developer and designer. If I think about it in terms of being an admin, policy management, the data collector, and those types of new functionality are very interesting. I’m not even sure what’s new in the BI space.

So, if you’re one of twenty people reading this, leave a comment. What interests you? What concerns you? If you’re interested in something, I’m pretty sure more people are.

Permalink 5 Comments

Top vs. Max

March 21, 2008 at 2:56 pm (TSQL) (, , , , , , , , , )

The company I work for has a very well defined need for versioned data. In a lot of instances, we don’t do updates, we do inserts. That means that you have to have mechanisms for storing the data that enables you to pull out the latest version of all the data or a particular version of all the data, or the data at a particular moment in time, regardless of version.

 That means maintaining a version table and a series of inserts into various tables. Some tables will have pretty much a new row for each version, some tables may only have one or two versions out of a chain. With the help of a very smart Microsoft consultant, Bill Sulcius, we have a mechanism that works very well. However, questions about the ultimate tuning of the procedures remain. So we may have a query that looks like this:

FROM dbo.Document d
INNER JOIN dbo.Version v
ON d.DocumentId = v.DocumentId
AND v.VersionId = (SELECT TOP(1) v2.VersionId
                                    FROM dbo.Version v2
                                    WHERE v2.DocumentId = v.DocumentId
                                    ORDER BY v2.DocumentId DESC, v2.VersionId DESC)

There’s a clustered index on the Version table that has DocumentId & VersionId in it. This query works great.

But you can also write the same query to get the same results using MAX or ROW_NUMBER(). What’s more, those work well too, all nice clean clustered index seeks. You can also use CROSS APPLY rather than JOINS. All these appear to work well, but in different circumstances, some work better than others. That makes establishing a nice clean “if it looks like this, do this” pattern for developers to emulate difficult. I’m creating a series a tests to outline as much of the differences as I can. I’ll write it up and submit it all to Chuck over at SQL Server Standard first. If he doesn’t like it, it’s Steve’s. I’ll also post a few tid bits here.

Permalink Leave a Comment