Tuesday, January 18, 2011

PASS SQLRally Professional Development Vote Done and the Development Track Vote is open

Congratulations to the winners in the Professional Development Track Vote for PASS SQLRally.  You can see the winners at http://www.sqlpass.org/sqlrally/2011/Agenda/Sessions/SessionsProfessionalDevelopment.aspx.

Now the voting is open for the Database & Application Development Track.  The various links you need are:

This vote will work a little differently than the Professional Development vote as this track has been broken down into 11 categories based on the topics submitted to simplify the voting process.  You will vote for 2 sessions in any category with more than 2 sessions and 1 session for any category with only 2 sessions.  The top vote getter in each category (top 2 for Summit Spotlight) will be put on the schedule.  The alternates will also have chance to make our Wild Card track.

Presenters – don’t forget to market your submission(s) on your blog and via Twitter/Facebook, etc… 

Voters – be sure to let everyone know you voted using Twitter and the #sqlrally hash tag.  It has been fun to watch the voting on Twitter.

Remember, you don’t have to be attending SQLRally to vote,  you just need to be a member of the community!  Vote today!

January OPASS Meeting

January’s OPASS meeting will be held this Thursday, January 20th at 6pm.  We will be meeting at the Hampton Inn, 850 Village Oak Lane, Lake Mary.

SQL Server MVP and author Kevin Kline (Blog|Twitter) will be speaking on Ten Things Every Developer Should Know.

We’ll have food and some giveaways as well.  Please RSVP so we will know how much food we’ll need.

Kevin will also be presenting at the inaugural MagicPASS meeting on Wednesday, January 19th at Stetson University in Celebration, FL.  So if you are on the south side of Orlando you don’t have to come up to Lake Mary, although we’d love to have you.

Monday, January 10, 2011

Speaking at SQLSaturday #62–Tampa

I’ll be speaking at SQLSaturday #62 – Tampa this Saturday, January 15th.  I’ll be presenting:

Why I Use Stored Procedures

With the proliferation of ORM tools like Entity Framework, nHibernate, and Linq to SQL, many projects have decided that stored procedures are not needed and slow down development. While these tools have their place and have improved greatly, stored procedures still have their place, and, in this speaker's opinion, are the best way to do data access. In this session I'll discuss my reasons for using stored procedures and hopefully stimulate some discussion of other access methods.

Session Level: Intermediate

Every SQLSaturday is a great time and great opportunity to upgrade your skills and network!  Pam Shaw and crew have done a few of these so they know what they are  doing.

I’ll also be attending Denny Cherry’s (Blog|Twitter) Day of Data seminar on Storage and Virtualization for the DBA on Friday, January 14, 2011.  You can still register and get by 2 get one free deal.

Hope to see you this weekend!

Thursday, January 6, 2011

Fun with a String

I recently had a friend contact me recently to ask for some help with TSQL.  The basic issue is that he had 2 tables.  Table 1 has numeric key values which are contained within a character column in Table 2 which is also in another database on the same server.  His job was to parse the character column in Table 2 so he could join to the numeric key in Table 1.  He originally said that the numeric data in the character column would start at position 7 and be 12 characters long so his original query was something like this:

SELECT
*
FROM
db.schemaname.table1 AS T1
JOIN db.schemaname.table2 AS T2
ON T1.id = SUBSTRING(T2.character_col, 7, 12)



I replied that the query would work, but was he guaranteed that the data would ALWAYS start at position 7 and be 12 characters?  Also that using the SUBSTRING function meant that the optimizer could not use an index.  As I thought about the situation I came up with this as probably the most flexible solution.



Here’s some test data:



/* Don't like to work in a user database */
USE tempdb ;
GO

CREATE TABLE
#test1 (id INT)

/* create a test table */
CREATE TABLE #test
(
string VARCHAR(50) NOT NULL
) ;

/* put in some data */
INSERT INTO #test1
(
id
)
SELECT
123456789012
UNION ALL
SELECT
234567890121
UNION ALL
SELECT
345678901212
UNION ALL
SELECT
456789012123
UNION ALL
SELECT
12345678901
UNION ALL
SELECT
23456789011
UNION ALL
SELECT
1234567890123
UNION ALL
SELECT
12345678901234 ;

INSERT INTO #test
(
string
)
SELECT
'Jack 123456789012'
UNION ALL
SELECT
'234567890121'
UNION ALL
SELECT
'Jack 345678901212'
UNION ALL
SELECT
'Jack abcdefg'
UNION ALL
SELECT
'Jack 456789012123x'
UNION ALL
SELECT
'Jack 12345678901'
UNION ALL
SELECT
'Jack 23456789011a'
UNION ALL
SELECT
'Jack 1234567890123'
UNION ALL
SELECT
'Jack 12345678901234a' ;


/* Use PATINDEX inside SUBSTRING to find the first instance of a numeric character 
to set the starting index. Use PATINDEX on the string REVERSE to find the
last instance of a numeric character. */
SELECT
*
FROM
#test1 AS T1 JOIN
#test AS T2 ON T1.id = SUBSTRING(T2.string, PATINDEX('%[0-9]%', T2.string),
LEN(T2.string) - PATINDEX('%[0-9]%', REVERSE(T2.string)) -
PATINDEX('%[0-9]%', T2.string) + 2);

DROP TABLE #test1;
DROP TABLE #test ;


This code works for this situation.  Will it work in every situation?  Probably not.  Will it scale?  Probably not, but it was an interesting exercise.



Do you have a better solution?  If you do post it in the comments or post a link to a blog post where you put your solution.

Wednesday, January 5, 2011

Who Should Vote for PASS SQLRally Sessions

Adam Machanic (@AdamMachanic) asked on Twitter if people who aren’t planning on attending PASS SQLRally  should still vote for sessions on the schedule.

My answer is a resounding “Yes!”.  If you are a PASS member, it’s free so you should be, you should vote.  It was pointed out by Aaron Nelson (@SQLvariant) that, if only registered attendees could vote, there would be a lot of attendees who couldn’t vote because they haven’t registered yet.

The idea behind the community vote for SQLRally is that the community (not just attendees) should decide, within the rules, what sessions should go on the schedule.

Is it a perfect system?  No, but does give the community greater ownership of the event, which I think is a good thing.

So How Do I Vote?

First you have to opt-in to the voting process.  If you are a PASS member you should have received an email with a link to the “voter registration” page.  Once you register you will receive one email per week for the track up for vote which will contain a user specific link to the “ballot”.  Then you follow the instructions in the email and on the ballot.

Tuesday, January 4, 2011

PASS SQLRally Update–Voting Pushed Back

SQLRally Logo

In our original plan for PASS SQLRally we had set this week as the week to start voting for sessions.  Unfortunately we are having to push back the voting for 1 week.  The original schedule was:

  • Professional Development: Jan 4-9
  • Database & Application Development: Jan 10-16
  • Enterprise Database Administration and Deployment: Jan 17-23
  • BI Platform Architecture, Development and Administration: Jan 24-30

This has been changed to:

  • Professional Development: Jan 10-16
  • Database & Application Development: Jan 17-23
  • Enterprise Database Administration and Deployment: Jan 24-30
  • BI Platform Architecture, Development and Administration: Jan 31-Feb 6

Why has this happened? 

There are a variety of reasons beginning with the fact that we put the event on a very aggressive schedule and didn’t plan for enough time between the PASS Summit and SQLRally voting, especially with Thanksgiving, Christmas, and New Years being sandwiched in between.

It took longer than anticipated to break down the submissions into categories within the tracks.  Our goal was to have 11 categories (one of which would be Summit Showcase) for each of the main tracks (DBA, Dev, BI) based on the distribution of topics within the track.  That becomes more difficult when a third of the submissions in a track are locked into the Summit Showcase category.  Yes, that many Summit speakers are interested in SQLRally as well.  Another sign that this will be a great event.

We needed to communicate with some of the people who submitted abstracts to clear up some confusion we had when reviewing their submissions and we had to give them adequate time to respond.

Finally, we decided that we wanted to make the voting process an opt-in process.  So we will be sending out an email to the PASS member list with a link asking you to opt-in to the voting process.  Only those people who opt-in will be emailed the voting link each week.  The planning team was concerned that PASS members who are not interested in or able to attend SQLRally would consider the voting emails to be spam, if we sent each voting announcement out to the entire PASS member list.

What’s the final outcome?

The event team believes that delaying the process by a week and giving the voters more time to review the abstracts will lead to a better event.

The planning of SQLRally has been a learning process for all involved as it is the first one.  We are identifying issues in the process so that the next group planning a SQLRally will have a solid foundation to build upon.

Thanks for your patience. 

Monday, January 3, 2011

Looking Back at 2010

I was “inspired” to write this post after I read some comments on my last post, Reviewing My 2010 Goals, and I read Brent Ozar’s post, Goals? Where we’re going, we don’t need goals., especially the first 2 sentences of his summary:

Looking up at this list, almost none of it was predictable on 1/1/2010. I’ve done annual goals in the past and been nothing but disappointed because life changed my plans along the way.

That’s how I feel about 2010.  I didn’t accomplish many of my 2010 goals, but I do think I did a lot of things.

First, I assumed more and more responsibility for OPASS as the year went on, to the point where I am now the President of OPASS.  I’m actually surprised by the amount the work it takes to run a user group, and I had a location already.  It is even more for those who need to find a location.  You have to find speakers, sponsors, plan the meetings, maintain the web site, handle messaging and marketing, and make sure there is food.  I’ve been fortunate as Rodney and Karla Landrum have moved to Orlando and have been very helpful since I took over as president.

Next I had a much bigger role in planning SQLSaturday #49 in Orlando.  I was in charge of sponsors, messaging, and marketing.  Honestly, I’d much rather do speakers and schedule.  Setting up the schedule is intense, but you do that once (well, there are always adjustments) a few months before the event, while messaging and sponsors is ongoing from when you first start planning the event to the day of the event.

I also served on the Program Committee for the 2010 PASS Summit.  I was on the committee that rated and selected sessions for the Enterprise Database Administration and Deployment track.  I originally had not planned on this, but I really enjoyed doing it, and it helped me when it came time to work on SQLRally.

The two big things I did this year were:

  1. Run for the PASS Board of Directors.  I put a lot of time into the decision to run.  You can read about it in my post, How I Prepared to Run for the PASS Board.  I Didn’t Make the Cut for the general election, but I did make it to the interview process.  I might have made the cut had I put as much time into preparing for the interview as I did in deciding to run.
  2. Be part of the PASS SQLRally local planning team.  Andy Warren involved Kendal Van Dyke and I in putting together a proposal to host SQLRally in Orlando, and we have each put in many hours planning and organizing the event with the PASS HQ Staff.  My main areas of involvement have been working on sponsorship levels and options and defining and working on the Speaker selection process.  I now have a much greater appreciation for those who plan and organize the PASS Summit.  By the time May 11th comes around we’ll have been working on the event for almost a year.

So while I didn’t meet my goals, I definitely consider it a successful year.