SQLBits VI – The 6 Sets.

It’s almost time for another SQLBits, and in my [humble] opinion, it’s not soon enough. These free conferences are fantastic and if you do have the opportunity to attend I suggest you do so. Whilst I have only a small idea as to what goes into organising a conference, I am pretty sure that it is a major undertaking. One that I am glad Simon Sabin (Blog|Twitter) and the rest of the SQLBits team (and let’s not forget volunteers here) are handling, and handling rather well. If you are keen to help out, in any way, contact Simon and offer your services.

I have only been to one SQLBits Conference (SQLBits V, Newport, Wales) and have talked about it here, here and here. I liked it. I liked it a lot (as if you couldn’t tell, right?). I got to meet loads of sqlservery people and had a number of good conversations, attend several brilliant presentations and a number of good ones (most of which I learned a bunch of new things), won a Redgate SQL Compare license (which I am still waiting for btw, Redgate, nudge nudge) and generally had a great time. While SQLBits V was a 3 day affair, SQLBits VI will be 1 day only and the theme is Performance Tuning and Scalability. Oh, and it’s free.

Conference Details

SQLBits VI will be held in London, and more specifically, at the Church House Conference Center, Westminster, London, UK on 16th April 2010. Starting at around 8am (for registration, swag-bag pick up and of course a few obligatory bacon baps) the conference kicks off with sessions across several tracks:

  • Database Administration
  • Development
  • Business Intelligence

With the focus being on performance tuning and scalability for all tracks, this promises to be a great conference for learning some interesting things.

Registration is open (and has been for a little while, if I’m being honest), but you will have to be quick. Becuase it’s only a 1 day conference, but mostly because it’s such a great conference and it’s FREE, places tend to be snapped up pretty darn quick. Also, if you register for SQLBits VI before 30th March 2010 you stand a chance of winning registration to the European PASS Summit (Germany), if you attend SQLBits VI then you stand a chance to win a registration to the PASS Summit (Seattle, USA).

One point on registration. As it is free, people tend to register even if they are not sure if they will actually attend. While this is not a bad thing in itself, if you are one of those people AND it turns out that you cannot attend then please cancel your registration. This frees up a place for someone else that can make it (but was too late [initially] for registration). There’s a lot that goes into planning a conference and most of this is done around the number of attendees. If a number of those registrants don’t pitch up, then there is a not only a whole lot of wasted money but a whole lot of wasted opportunity. Don’t be selfish, think of the community and act accordingly. Remember, it’s free!

Remember the after party

The sessions are bound to be fantastic, and you are likely to learn a great deal. But go home early at your peril. The prize giving, party and social after all the day’s events is not something you will want to miss. Why? Well, this is a prime opportunity to really get to know more SQL Server people. People that may well become your friends down the line, or at the very least be a contact point should you need assistance on a specific topic (the SQL Server Community is pretty awesome that way). It is also the best time to find those elusive speakers and ask them the questions that you have prepared. It’s a prime time to do this as the speakers are not stressed out about their presentations and are in a more relaxed and approachable state. They are much more likely to entertain your <ahem>query </ahem>, especially if you hand them a beer before you do so.

So, stay out a little longer than 6pm and make the most of a wonderful opportunity.

And finally…

I’m looking forward to catching up with some old acquaintances and learning a lot of new tricks on how to tune SSIS Packages and Scale Reporting Services Solutions. I’ll also be taking some notes on presentation styles and on what makes a speaker/session a great speaker/session, as I’m thinking getting on to the presentation bandwagon….in the hopefully not-too-distant future.

 

See you at SQLBits VI!

CV Tips for landing an IT Interview

The recruitment industry is a cut-throat and ruthless arena. Or so I’ve been told. It’s fast paced, with no time to spare on ifs, buts and maybes. Recruiters have a race against time to find the right candidate and get their details over to their prospective client. This race against time is not necessarily to fulfil the start date of the position. It is more about finding candidates before any other recruiter does – and those ‘other recruiters’ may well be in the same company and indeed, on the same team. It’s a competitive environment. Understanding this fact helps us to understand which tools work and why others don’t in the struggle to find that next opportunity. Let’s face it, they may be 1000 candidates that could do the job (you included), but are you part of the 10-15 that are returned in the recruiter’s search? Getting your CV into that shortlist is what counts and hopefully I’ll be able to help you get there.

Recruiters much prefer trying to find candidates before they advertise a job on one of the online job boards. This is primarily because having to wade through the hundreds of CVs they get emailed on day one of posting an advertisement is not very efficient. Those CVs are not searchable or in a standard format, they are literally a heap of emails that the recruiter has to go through one-by-one to find the right candidate. Far too time consuming. They would much rather be doing the searching, and hunting for candidates through the online job websites and their own internal systems/databases is their preferred method for doing so.

Note – this post is angled at the UK  market, although some tips may also be useful in other countries.

Spreading yourself far and wide.

Set up a folder in your web browser favourites and give it an applicable name (recruitment, IT Job sites, etc) and then add the following websites:

Now go to each and create a profile and upload your CV. The most important part of creating your profile is completing the skills and experience section as it applies to each site. This is important as it is what the recruiters will use to search for potential candidates. Put down as much information as you can as this will mean that you appear in more search results.

To make sure that you are on the radar, ‘refresh’ your profile at least once a week (simply making your profile private and then public again has this effect). Refreshing your profile has the effect of putting a ‘last activity’ date onto your profile, which recruiters will use to narrow down the search for candidates to just those who have been ‘active’ in the last n days. The best website to use to generate a lot of calls is Jobsite, as this site has the best search facility from a recruitment point of view (apparently).

Don’t bother with emailing the recruiter about a job that you have seen (refer to earlier point about the hundreds they receive). if the job posting does include a telephone number, CALL THEM! I can’t stress this enough. If you send an email, you’ll just be one of hundreds of others doing the same thing. Calling affords you the benefit of having the recruiters ear and instantly being on their radar. Then, when they ask for you CV (and they will) send it to them while you are still on the phone. Check that they have received it and then you can be sure that you have done everything you can for that particular position. Wash, rinse, repeat.

The search is on

Recruitment_CVSearchOrigination

Whenever I get a call from a recruiter about a potential job I try to find out from them where they found my details and what search they did to get them. For many of them this is Jobsite (as mentioned above), but, more calls stem from recruiters searching their own in-house databases for candidates. Knowing this helps to understand what the best options are for placing your CV.

Now, when I get an email from a recruiter asking for an updated CV, I add ALL of their details to my address book and label them as a recruiter and then reply with the following information:

  • Summary of skills and experience (i.e. SQL Server 2005 5yrs)
  • Start Availability – for current available start dates (this may be 3 months off, but still worth stating).
  • Call availability – for when the recruiter should check in with me for an update on my situation.
  • Rate – the day/hour/annual rate that I’ll be looking for. It’s important to have a range here as this will make more jobs available to you. And while some may be at a lower rate there may be other factors that will make this preferable over one paying a bit more. An example of this is finding a job close to home – how much is that worth?
  • Job type – contract/temp/perm. This ensures that recruiters don’t waste their time and yours when marketing for positions.
  • Contact details – your primary email address and phone number. I have set up a gmail account just for recruitment purposes, which I auto-forward to my personal account. This ensure that all my recruitment-related conversations (and contacts) are kept separate from my personal ones and helps to control the spam (well a little anyway). 

You WANT to be on their database. Trust me. As long as you are clear about all the facts then you should find that you are only called about applicable jobs at applicable times for applicable rates. You need to “help them, help you”. You are (mostly) database professionals, you know the value of good clean data and what you can make of it. Conversely, you also know that incomplete data can lead to all sorts of problems when it comes to marketing. I know that you are concerned about spam, I am too (that’s why I have a separate email address), but don’t let this one fact detract from the major benefits of having your details readily available to the recruiter who may have your dream job.

Think of this another way. You are searching for your next vehicle, you know you want a 5-door hatch, between £6000 – £7500. You get hundreds of results. So you start to narrow your search criteria, entering a max distance from where you are, max engine size, etc. This is what happens in a recruitment search. Initially, you are part of the hundreds of candidates that have “SQL Server, Reporting Services, Integration Services” listed as skills, but are you part of the few that also have their availability, rate, contact details, location, etc listed? If the recruiter refines their search by including a rate range and you have not filled this in, then you will be automatically excluded from any of the results. Recruiters need to find the most likely candidate to fill the position, and not appearing in their search means that y
ou are not one of them.

LinkedIn. Use it or lose it

Yes, I’m on LinkedIn and yes most of my ‘connections’ are recruiters. Whilst I have not had many (comparatively) opportunities originating from this site, I have had a few and those tended to result in more CV-forwards and interviews than other channels. There is also an iPhone app, which is great at making it easy to stay up-to-date with what’s going on in your LinkedIn world.

There are many websites offering online CV creation and storage, but LinkedIn has the added bonus of professional networking. Linking you to many other people through your own contacts – have you looked at how many people are contactable through the 2nd/3rd level? Use this single fact to generate leads.

Love it or loathe it, LinkedIn does open the door. Sometimes.

A heads-up to Recruiters (if you are listening)

I doubt that a) any recruiters will be reading this and, b) even if they do, that they’ll take some of this to heart, but it’s worth trying:

When you leave me a voicemail, clearly state your name, company and contact number so that I can call you back. I’ve had several calls that have been so rushed that I couldn’t catch some of the pertinent information and effectively meant that I could not call that person back. Also, leaving a message with “I have a few openings I’d like to discuss with you..” being the extent of the details of your call, means it will be deleted. If you leave message with a short but specific description of a job that you’d like to discuss then I’ll more than likely call you back. My time is precious too and being an information source for you is not how I want to spend 5 – 10 (15?) minutes of my day. The call needs to be win win.

Thanks for listening.

Setting the SQL Command Property using Expressions in SSIS 2005

 

OLE DB Source Adapter

The OLE DB source connection has several Access Modes:

  • Openrowset
  • Openrowset From Variable
  • SQL Command
  • SQL Command From Variable

For now, I am going to focus on the SQL Command options. Using the SQL Command Access Mode requires you to set the SqlCommand property (typing in your SQL query directly), effectively ‘hard coding’ the sql statement into the package. Using the SQL Command From Variable option allows you to set the SqlCommand property using a variable and subsequently by using an expression.

SSIS2005_DataSource_AccessMode_Properties_OLEDBSource

 

Data Reader Source

The Data Reader Source connection has only one Access Mode, and that is SQL Command. Don’t ask me why. At this level you can only set the SqlCommand property by typing in your query, or indeed, copy & paste.

SSIS2005_DataSource_AccessMode_Properties_DataReaderSource

 

Using an Expression to set the SqlCommand Property

“So then,” you ask, “how might I set the SqlCommand property for each of these Data Sources when it seems that I can’t?”. Here’s how. Let’s first concentrate on the OLE DB Source:

  1. Create a new Variable of type string and set your SQL statement
  2. Open up the OLE DB Source and select the ‘SQL Command from Variable’ option
  3. Now, select the the variable created in step 1 as the variable that contains the SQL statement

SSIS2005_DataAccessMode_OLEDBSource_Editor

At this point your OLE DB source is defined by the query that you have set in the Variable. We now need to create the expression that will define the query at runtime. We do this by navigating to the variable’s properties, setting the EvaluateAsExpression property to True and then configuring the expression in the Expression property.

Moving on to the Data Reader Source. With this adapter we only have the option of setting the SqlCommand directly. Or so I thought until recently. If you switch to the Control Flow design surface and select the Data Flow task that contains the Data Reader Source adapter, you will be able to set the SqlCommand using an expression.

  1. Select the Data Flow task to bring up its properties
  2. Click the ellipsis (…) to bring up the Expression Editor
  3. Select the [DataReader Source].[SqlCommand] Property
  4. Set your expression.

SSIS2005_DataSource_AccessMode_Properties_DataFlowTask_Expressions

SSIS2005_DataSource_AccessMode_Properties_DataFlowTask_ExpressionProperties

Using variables & expressions to set your queries enables you to centralise your queries, use configuration files to set database connections and capture the queries you are running in logging operations.  

Creating Subtotals in a Matrix in SSRS (2005/2008)

This is a quick look at how to create and use subtotals in your Matrix objects.

Subtotals 101

SQL Server Reporting Services makes it relatively easy to add totals to your columns and rows in a matrix object. In short, it’s as easy as right-click>Subtotal. Seriously, that’s it. Well, unless you want to format them, but that’s another issue entirely (an not quite as straight forward).

Let’s do this step-by-step :

  1. Open or create a new SSRS project
  2. Add a report item to your project.
  3. Add a dataset
  4. Add a matrix object
  5. Configure matrix to desired specification
  6. Add totals to outer groups by right-clicking the outer column/row group for which you require the subtotals and select subtotal.
  7. Add subtotals for inner groups by right-clicking the inner column/row group for which you require the subtotals and select subtotal.
  8. Tidy up by hiding the inner group line items initially – by right-clicking the inner group and selecting Properties>Visibility and then setting the properties accordingly.

Here’s a quick 2 minute screen cast of how to create subtotals in a Matrix object in SSRS 2005. It illustrates creating row group Totals & subtotals, but applies to column groups as well:

Here’s a link to another version if you are having any trouble: http://www.screencast.com/t/OGE1MmI4