<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Thu, 23 Feb 2012 14:54:46 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>Blog</title><subtitle>Blog</subtitle><id>http://jdgonzalez.net/blog/</id><link rel="alternate" type="application/xhtml+xml" href="http://jdgonzalez.net/blog/"/><link rel="self" type="application/atom+xml" href="http://jdgonzalez.net/blog/atom.xml"/><updated>2012-01-16T20:44:31Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.11.81 (http://www.squarespace.com/)">Squarespace</generator><entry><title>Road to certification: Making the effort</title><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2012/1/16/road-to-certification-making-the-effort.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2012/1/16/road-to-certification-making-the-effort.html"/><author><name>J.D. Gonzalez</name></author><published>2012-01-16T16:08:10Z</published><updated>2012-01-16T16:08:10Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p style="clear: both;">As a mentioned in a <a title="previous post" href="http://jdgonzalez.net/blog/2012/1/2/my-goals-for-2012.html">previous post</a>, this year I am going to get at least one certification in SQL Server. I know I've said similar things in the past, but I firmly believe it's going to be different. Why? You may ask? Well... This year I am going to do this with a partner. I am teaming up with a former coworker. And we've both made it our goals to complete at least one. Given that we both pushed each other hard when we worked together, I'm feel very confident that we can pull this off.</p>
<p style="clear: both;">I also want to document my process of getting my certification to serve as inspiration to those that are being hesitant too. If I've procrastinated on this topic then I know others have too. So sit back and let's enjoy the ride.</p>
<p style="clear: both;">For those that are curious, I am starting with the developer certification.</p>
<p style="clear: both;"> </p>
<p><br class="final-break" style="clear: both;" /></p>
<div class="posttagsblock"><a rel="tag" href="http://technorati.com/tag/Learning">Learning</a></div>]]></content></entry><entry><title>Setting up Rackspace Cloud as my test lab</title><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2012/1/7/setting-up-rackspace-cloud-as-my-test-lab.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2012/1/7/setting-up-rackspace-cloud-as-my-test-lab.html"/><author><name>J.D. Gonzalez</name></author><published>2012-01-07T18:00:39Z</published><updated>2012-01-07T18:00:39Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Well... Today I began taking the first steps to completing my SQL Server certification. I created my first windows domain using <a title="Rackspace's" href="http://www.rackspace.com/">Rackspace's</a> cloud offering. Admittedly, this was the first domain I have ever set up. And the process went quite well. The only issue I had was adding computers to the domain. I wasn't able to see the domain. Turns out that I wasn't pointing my DNS to the DNS server I installed when I built the domain. Once I got that sorted out I was ready to go.</p>
<p>If you've ever used <a title="Amazon's" href="http://aws.amazon.com/">Amazon's</a> EC2 service, Rackspace's cloud is pretty similar. There are a few key differences. Amazon charges you for the storage and time the server is actually 'powered' on. Rackspace, on the other hand, will bill you when the server is created. It doesn't make a difference if the server is on or off you will get billed for it. Because of this I've had to change my approach in my architecture to reduce costs.</p>
<ol>
<li>Create the domain controller and get it working the way I want it to work.</li>
<li>Once that is done, make an image of the working server. This will allow me to recreate my lab whenever I need to.</li>
<li>Create a server image that will be used to install SQL Server.</li>
<li>When I need to work on the lab, I fire up the domain controller based on the image and the other server image.</li>
<li>Every time you do this you will need to point your SQL Server install server to the new DNS on the DC. It will get a new IP address every time you build a new one.</li>
</ol>
<p>The reason I'm doing it this way instead of just keeping the servers active is so that I don't get an hourly bill. That being said, I set up two types of instances. I set up a 1GB ram box with 40GB of space at .08 per hour and a 2GB ram box with 80GB of space at .16 per hour. That's really pretty inexpensive but I don't see the need to pay for something if I'm not using it.</p>
<p>I hope you take some time this year to explore the power of the cloud. Personally, I think this is an extremely valuable tool for learning how to administer or learn a new system. If you mess up just fire up another system.</p>
<p>Good luck!</p>
<p>J.D</p>
<p>&nbsp;</p>
<div class="posttagsblock"><a rel="tag" href="http://technorati.com/tag/Administration">Administration</a>, <a rel="tag" href="http://technorati.com/tag/Learning">Learning</a></div>]]></content></entry><entry><title>My goals for 2012</title><category term="Everyday Life"/><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2012/1/2/my-goals-for-2012.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2012/1/2/my-goals-for-2012.html"/><author><name>J.D. Gonzalez</name></author><published>2012-01-02T17:10:58Z</published><updated>2012-01-02T17:10:58Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Today is January 1st and you know what that means. Yep... It's time to come up with resolutions for this year. Before I get into what my new years resolutions will be I'd like to reflect on how I did on last years' resolutions. I'm happy to report that I actually did very well. Although, I wish I would have done more studying on SQL Server internals. You can never know enough about that stuff! See what my goals were <a href="http://jdgonzalez.net/blog/2011/1/1/my-goals-for-2011.html">here</a>.</p>
<p>Like last year, I really felt that having a set of personal and professional goals really helped me focus on what I wanted to accomplish. So this year, I will be doing the same. Here we go!</p>
<p><strong>Professional</strong></p>
<ol>
  <li>Diversify my skill set. Currently, at work, we are using SQL Server and we are also beginning an initiative that will utilize mySQL. If I want to continue to be the 'go to' guy I need to learn some new skills.</li>

  <li>Become much more involved in the Austin SQL Server community. Wes Brown over at <a href="http://sqlserverio.com/">sqlserverio.com</a> runs CACTUSS and is a fantastic guy. He's showed me that there are many people that want to learn from SQL Server professionals.</li>

  <li>Get my MCITP on SQL Server. It could come in handy when dealing in salary negotiations.</li>
</ol>
<p><strong>Personal</strong></p>
<ol>
  <li>Become more involved at my daughters school. There's no better feeling that giving a few hours of my time. And I know my daughter really appreciates it.</li>

  <li>Finish the Miata. What I mean by that is it won't be completed until the seats are redone, shifter is working properly, suspension work is done and ground effects are installed.</li>

  <li>Continue to play the trumpet, and perhaps a euphonium if I can get my hands on one. It made my day watching my son smile as I was playing my horns. Hopefully he'll grow up to enjoy music as much as I do.</li>
</ol>
<p>Looking back, I think 2011 went really well. Let's hope 2012 is even better.</p>

<div class="posttagsblock"><a href="http://technorati.com/tag/Life%20Experiences" rel="tag">Life Experiences</a>, <a href="http://technorati.com/tag/New%20Years%20Resolution" rel="tag">New Years Resolution</a></div>]]></content></entry><entry><title>Year in review</title><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2011/12/31/year-in-review.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/12/31/year-in-review.html"/><author><name>J.D. Gonzalez</name></author><published>2011-12-31T19:39:38Z</published><updated>2011-12-31T19:39:38Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Well...  2011 is about to end and what a year it's been.  Solved some major headaches at <a href="quantumdigital.com">Quantum Digital</a> by implementing some features in SQL Server.  Probably the biggest issue we were having was some intermittent blocking due to the way some of our processes were written.  I implemented read committed snapshot isolation and 99.9% of our blocking issue disappeared.  A big win for the database team.
</p>
<p>On the performance tuning front, I optimized a process that was maxing out our CPU.  Due to the way the query was written I modified and removed some redundancies and the query ran with minimal impact on the production environment.</p>

<p>If you've never worked with geospatial datatypes...  You should.  I began working with them late last year and it was the best move that I could have made.  I took a query that would have been extremely difficult and complex and with the aid of geospatial datatypes rewrote that query to be extremely simple to understand and considerably quicker too.  I wrote about that <a href="http://jdsqldba.com/blog/2010/11/18/adventures-in-sql-server-2008-geospatial-time-travel.html">here</a>.</p>

<p>At a personal level, I am getting more and more involved in the local SQL Server community by attending the Capitol Area, Central Texas Users of SQL Server otherwise known as (<a href="cactuss.org">CACTUSS</a>).  I learned more in the few months of attending CACTUSS meetings than I did working on the job.  I attended SQLSaturday in Austin a few months ago.  What a blast that was.  Met some fantastic people and learned a great deal of knowledge from folks I consider experts in the SQL Server community.<p>

<p>My wife and I also had our second child this year.  Needless to say, that has kept me very busy but I wouldn't give it up for the world.  My other little 'baby' is now 6 years old.  Woah!  Life moves so fast; it's simple hard to believe how big they are getting.</p>

<p>I'm looking forward to what I hope will be a very exciting 2012.  Now I have to come up with some resolutions for next year;)</p>

<p>J.D.</p>]]></content></entry><entry><title>June is learn PowerShell month</title><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2011/5/17/june-is-learn-powershell-month.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/5/17/june-is-learn-powershell-month.html"/><author><name>J.D. Gonzalez</name></author><published>2011-05-17T15:30:19Z</published><updated>2011-05-17T15:30:19Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>For the last year or so I’ve been hearing people talking about PoweShell and how great it is.&#160; I’m sure it’s great or a ton of people wouldn’t be talking about it.&#160; My problem is I don’t get it.&#160; I don’t understand why I’d want to use PS instead of just logging into a server.&#160; So for that reason, I want to do a month long dive (I’ll stop short of calling it deep) into PowerShell to see for myself what all the excitement is all about.</p>  <p>For those that use PS I’d really love to hear some real life examples where this has helped you and just that you wanted a different way of doing a given function.&#160; That being said, can anyone provide a starting point for learning PS?&#160; Wish me luck!</p>  <p>Thanks</p>  <p>J.D.</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8b0f6ae6-543f-4391-99a5-d8c7ee2ff23f" class="wlWriterEditableSmartContent">Tagged in: <a href="http://jdgonzalez.net/blog/tag/Learning" rel="tag">Learning</a>, <a href="http://jdgonzalez.net/blog/tag/PowerShell" rel="tag">PowerShell</a></div>]]></content></entry><entry><title>SQL formatting to your blog made easy</title><id>http://jdgonzalez.net/blog/2011/4/18/sql-formatting-to-your-blog-made-easy.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/4/18/sql-formatting-to-your-blog-made-easy.html"/><author><name>J.D. Gonzalez</name></author><published>2011-04-18T20:36:39Z</published><updated>2011-04-18T20:36:39Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Earlier today I was looking for SQL code formatters that I could use when writing to my blog.&#160; Something I could just cut and paste to my Squarespace hosted blog.&#160; Of course, <a href="www.twitter.com">Twitter</a> came to the rescue.&#160; Bill Fellows (<a href="http://twitter.com/#!/billinkc">twitter</a>) led me <a href="http://www.manoli.net/csharpformat/">here</a>.&#160; Worked fantastic.&#160; Exactly what I was looking for.&#160; Then Robert Davis (<a href="http://twitter.com/#!/SQLSoldier">twitter</a>) pointed me to a couple of other options.&#160; The <a href="http://extras.sqlservercentral.com/prettifier/prettifier.aspx?skin=st">Simple-Talk Code Prettifier</a> and a blogging application called <a href="http://explore.live.com/windows-live-writer?os=other">Writer</a>.&#160; </p>  <p>Writer allows you to write your blog in a WYISYWIG fashion.&#160; One of the plug-ins you can get for Writer is a plug in called <a href="http://plugins.live.com/writer/detail/paste-from-visual-studio">Paste from Visual Studio</a>.&#160; What I like about this plug in is that it allows you to work in SQL Server Management Studio for your SQL code and use the plug in to paste what you’ve copied to the clipboard to your blog.&#160; And it keeps the correct colors and formatting.&#160; See below.</p>  <pre class="code"><span style="color: blue">select </span><span style="color: gray">*
</span><span style="color: blue">from </span>someTable
<span style="color: blue">where </span>myID <span style="color: gray">= </span><span style="color: red">'Some filter'</span></pre>
<a href="http://11011.net/software/vspaste"></a>

<p>The only issue I have is that in order to paste your code to your blog, go to Insert &gt; Paste from Visual Studio instead of just hitting ctrl-v.&#160; In the grand scheme of things, it’s a pretty trivial issue to have to deal with.&#160; </p>

<p>I haven’t given Writer a thorough test but for someone that only blogs a few times a month it’ll work fine for me.&#160; I hope it’s useful for you too;)</p>

<p>J.D.</p>]]></content></entry><entry><title>What the... SQL Server won't start up</title><category term="Administration"/><category term="Disaster Recovery"/><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2011/3/14/what-the-sql-server-wont-start-up.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/3/14/what-the-sql-server-wont-start-up.html"/><author><name>J.D. Gonzalez</name></author><published>2011-03-15T04:07:41Z</published><updated>2011-03-15T04:07:41Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>For it's part, SQL Server is extremely reliable. &nbsp;However, no matter how many precautions we take, software is always prone to failure. &nbsp;Things that can go wrong will at some point go wrong. &nbsp;SQL Server is no exception. &nbsp;Probably the worst event that can happen to SQL Server is having SQL Server not start up. &nbsp;If you're able to get SQL Server to start up you have a chance at survival. &nbsp;If you can't, you need to perform some tricks to reconstruct a master file. &nbsp;For those that don't know, the master database is the heart of SQL Server. &nbsp;Let's get one thing out in the open. &nbsp;"DO NOT MESS WITH THE DATA DIRECTLY IN THE MASTER DATABASE". &nbsp;Got it. &nbsp;Bad things. &nbsp;Very bad things can happen.</p>
<p>Today we're going to explore how to bring SQL Server backup in the event something has happened to SQL Server. &nbsp;I had the system administrators where I work create for me a VM. &nbsp;I then went on to install the eval version of SQL Server 2008R2 on the box. &nbsp;First thing we need to do is to create a database so that we can demonstrate that we really did restore the master database. &nbsp;Open up SQL Server Management Studio and type the following:</p>
<blockquote>
<p>Create database myTestDatabase<br />go</p>
</blockquote>
<p>Next thing we want to do is to backup all of our system databases. &nbsp;This includes master, model, and msdb. &nbsp;No need to backup tempdb as it get reconstructed everytime SQL Server gets restarted. &nbsp;The code to backup the system databases is as follows:</p>
<p><span style="color: #000000; font-size: x-small;">
<blockquote>
<pre class="csharpcode" style="font-size: small; color: black; font-family: Consolas, 'Courier New', Courier, monospace; background-color: #ffffff;"><span class="kwrd" style="color: #0000ff;">backup</span> <span class="kwrd" style="color: #0000ff;">database</span> master
<span class="kwrd" style="color: #0000ff;">to</span> <span class="kwrd" style="color: #0000ff;">disk</span> = <span class="str" style="color: #006080;">'c:\master.bak'</span>

<span class="kwrd" style="color: #0000ff;">backup</span> <span class="kwrd" style="color: #0000ff;">database</span> model
<span class="kwrd" style="color: #0000ff;">to</span> <span class="kwrd" style="color: #0000ff;">disk</span> = <span class="str" style="color: #006080;">'c:\model.bak'</span>

<span class="kwrd" style="color: #0000ff;">backup</span> <span class="kwrd" style="color: #0000ff;">database</span> msdb
<span class="kwrd" style="color: #0000ff;">to</span> <span class="kwrd" style="color: #0000ff;">disk</span> = <span class="str" style="color: #006080;">'c:\msdb.bak'</span> </pre>
</blockquote>
</span></p>
<div id="_mcePaste"></div>
<p>Now we need to start breaking stuff. &nbsp;Let's first stop SQL Server by opening up a command window and typing:</p>
<blockquote>
<p>net stop "MSSQLSERVER"</p>
</blockquote>
<p>This assumes that your instance is the default instance. &nbsp;If you have a named instance, use the following:</p>
<blockquote>
<p>net stop "MSSQL$&lt;&lt;instancename&gt;&gt;"</p>
</blockquote>
<p>Now that our database is stopped we can remove (or rename) the master.mdf and mast.log files. &nbsp;In case you think that what we just did doesn't really hurt anything. &nbsp;Let's try to restart SQL Server. &nbsp;The code is similar to stopping the service.</p>
<blockquote>
<p>net start "MSSQLSERVER"</p>
</blockquote>
<p>or&nbsp;</p>
<blockquote>
<p>net start "MSSQL$&lt;&lt;instancename&gt;&gt;"</p>
</blockquote>
<p>You'll notice that it errors out. &nbsp;A quick look at the error log. &nbsp;</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://jdgonzalez.net/storage/sql-server-articles/restoring-master/errorStartingupSS.JPG?__SQUARESPACE_CACHEVERSION=1300196050931" alt="" /></span></span></p>
<p>Now what? &nbsp;In order to get SQL Server to a point where we can start it and log into it we'll need the install media. &nbsp;You still have that right? &nbsp;We'll use some special switches and parameters to get the install media to build us some system database files and log files.</p>
<blockquote>
<p>C:\Documents and Settings\Administrator&gt;"c:\SQLServer\setup.exe" /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=BUILTIN\Administrators /SAPWD=mySuperSecurePassword</p>
</blockquote>
<p>Because we're using setup.exe, we don't really want to install the entire SQL Server application again so we'll use some parameters. &nbsp;These are taken from <a href="http://msdn.microsoft.com/en-us/library/dd207003.aspx">Microsoft's</a> website.</p>
<blockquote>
<p>/ACTION=REBUILDDATABASE</p>
</blockquote>
<p>As the name describes, this specifies that Setup re-create the system databases.</p>
<blockquote>
<p>/INSTANCENAME=MSSQLSERVER</p>
</blockquote>
<p>This is the name of the instance of SQL Server. For the default instance, enter MSSQLSERVER.</p>
<blockquote>
<p>/SQLSYSADMINACCOUNTS=BUILTIN\Administrators</p>
</blockquote>
<p>Specifies the Windows groups or individual accounts to add to the&nbsp;<span><span class="input">sysadmin</span></span>&nbsp;fixed server role. When specifying more than one account, separate the accounts with a blank space. For example, enter&nbsp;<span class="input">BUILTIN\Administrators MyDomain\MyUser</span>. When you are specifying an account that contains a blank space within the account name, enclose the account in double quotation marks. For example, enter&nbsp;<span class="input">NT AUTHORITY\SYSTEM.</span></p>
<blockquote>
<p><span class="input">/SAPWD=mySuperSecurePassword</span></p>
</blockquote>
<p><span class="input">Specifies the password for the SQL Server&nbsp;<span><span class="input">sa</span></span>&nbsp;account. This parameter is required&nbsp;if the instance uses Mixed Authentication&nbsp;(SQL Server and Windows Authentication)&nbsp;mode.&nbsp;</span></p>
<p>You'll notice if you look at the directory where the database files are kept we now have files for master, model, and msdb. &nbsp;In my case that's E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA.</p>
<p>Let's take a stab as getting sql server to start up. &nbsp;Like before we'll use the net startup command.</p>
<blockquote>
<p>net start "MSSQLSERVER"</p>
</blockquote>
<p>or if you have an instance:</p>
<blockquote>
<p>net start "MSSQL$&lt;&lt;instancename&gt;&gt;"&nbsp;</p>
</blockquote>
<p>At this point you should be able to log in. &nbsp;Let's check to see if our database is available by using the following code:</p>
<blockquote>
<p>select * from sys.databases</p>
</blockquote>
<p>Uh... &nbsp;Oh! &nbsp; What happened to our newly created database? &nbsp;Because we had to rebuild the master database and log files, SQL Server doesn't know that our database even exists. &nbsp;But as I mentioned earlier, if we can log on to SQL Server we can restore our backups. &nbsp;You did backup your databases right? &nbsp;We now need to overwrite the master database with the database in our backup. &nbsp;We'll need to stop the SQL Server service. &nbsp;I've showed you how to do that above but we'll need to add the '/m' switch to get the SQL Server service to start in single-user mode.</p>
<blockquote>
<p>net start "MSSQLSERVER" /m</p>
</blockquote>
<p>or if you use a named instance:</p>
<blockquote>
<p>net start "MSSQL$&lt;&lt;instancename&gt;&gt;" /m</p>
</blockquote>
<p>while you have that command line window open we need to use SQLCMD.exe to allow us command line our restore operation. &nbsp;You'll find SQLCMD.exe in the directory C:\Program Files\Microsoft SQL Server\100\Tools\Binn\. &nbsp;In the command shell window type:</p>
<blockquote>
<p>sqlcmd.exe</p>
</blockquote>
<p>You'll notice that your prompt has now changed to a line number and a '&gt;'. &nbsp;This means you're now in SQL Server.</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://jdgonzalez.net/storage/sql-server-articles/restoring-master/cmdrestoremaster.JPG?__SQUARESPACE_CACHEVERSION=1300197219655" alt="" /></span></span></p>
<p>We use 'with replace' to overwrite the current master database. &nbsp;Once it gets restored, SQL Server will kick you out to a DOS prompt. &nbsp;Now that we've restored the master database, we can start up the service like I demostrated above. &nbsp;We'll want to next query sys.databases to make sure that SQL Server know where our database is now.</p>
<blockquote>
<p>select * from sys.databases</p>
</blockquote>
<p>You'll notice that our database listed.</p>
<p>At this point, we can restore the model database if you use model as a template to save your company specific settings for creating databases. &nbsp;If you had SQL Agent jobs, you'll also want to restore the msdb database. &nbsp;Unlike before, it is not necessary to use SQLCMD.exe to restore these database. &nbsp;They can be done from within SQL Server Management Studio.</p>
<p>Congratulations! &nbsp;You've recovered from a catastrophic SQL Server failure. &nbsp;I hope it also demostrates why backups (especially of system databases) are extremely important. &nbsp;Take the time to practice this exercise. &nbsp;Hopefully it's not something you'll have to use but when you do you'll be prepared. &nbsp;</p>
<p>Thanks</p>
<p>J.D.</p>]]></content></entry><entry><title>Sometimes the right thing to do isn't always the easiest</title><category term="Everyday Life"/><category term="Life experiences"/><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2011/3/14/sometimes-the-right-thing-to-do-isnt-always-the-easiest.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/3/14/sometimes-the-right-thing-to-do-isnt-always-the-easiest.html"/><author><name>J.D. Gonzalez</name></author><published>2011-03-14T14:51:23Z</published><updated>2011-03-14T14:51:23Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>It looks like May will be turning out to be a very busy month for me. &nbsp;Well... &nbsp;At least Friday the 13th will be. &nbsp;I'm planning on attending a conference in Orlando that week, I have a concert in the wind ensemble that I perform in (I was going to guest conduct), and I need to attend my niece's baptism. &nbsp;As much as I would love to attend the conference, it just doesn't seem right to skip my niece's baptism especially since I'm the godfather. &nbsp;It's a big deal for me and my family. &nbsp;I know I would be upset (or a little sad) if the situation were reversed. &nbsp;I'm considering cancelling my attendance at the conference if I can't get a flight back without missing too much of the conference. &nbsp;As the title says, sometimes the right thing to do isn't always the easiest. &nbsp;</p>
<p>Either way, I'm going to be there at my niece's baptism. &nbsp;I may need some coffee to get me up but I'll be there. &nbsp;I'm going to see if I can get a different flight from Orlando so that I can fly directly to Laredo. &nbsp;I have to wait to see what options our travel agent can provide.</p>
<p>Wish me luck!</p>
<p>J.D.</p>]]></content></entry><entry><title>Just because it didn't cost any money doesn't make it free</title><category term="Crossroads"/><category term="SQL Server"/><id>http://jdgonzalez.net/blog/2011/2/20/just-because-it-didnt-cost-any-money-doesnt-make-it-free.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/2/20/just-because-it-didnt-cost-any-money-doesnt-make-it-free.html"/><author><name>J.D. Gonzalez</name></author><published>2011-02-21T05:33:43Z</published><updated>2011-02-21T05:33:43Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>You've got to love change. &nbsp;It's all around us. &nbsp;Change in our production environment is no different. &nbsp;My company is currently in the process of evaluating new database technologies. &nbsp;One of our more important database servies is on SQL Server 2000 and it needs to be upgraded. &nbsp;The hardware is old and the software is close to being a teenager. &nbsp;As a SQL Server developer and administrator I'd like to see it moved to SQL Server 2008 but our executive team wants to evaluate open source alternatives.</p>
<p>Fair enough, there are several open sources database technologies that currently come to mind. &nbsp;PostgreSQL and mySQL, for example. &nbsp;We've also considered no SQL technologies but those would truly represent to radical mindshift in our development process. &nbsp;Not to mention that our environment is a Windows environment. &nbsp;Most of the no SQL technologies are built with Linux in mind.</p>
<p>Probably my main concern with moving to an open source technology are the costs associated with moving our environment. &nbsp;I'm sure you're probably thinking right now 'what kind of costs do you have with an open source database'? &nbsp;Here are a few that I thought of:</p>
<ul>
<li>DBA training</li>
<li>Developer training</li>
<li>Software costs</li>
</ul>
<p><strong>DBA Training</strong></p>
<p>Our current environment is run by two SQL Server DBAs with no experience in PostgreSQL or MySQL. &nbsp;This means that we have to spend money on administration training. &nbsp; Typical training costs are around $2000. &nbsp;</p>
<p>But just taking this training does not make us experts, or even intermediate level DBAs. &nbsp;There is a learning curve to get to the point where your comfortable working with it. &nbsp;Perhaps even longer to get comfortable handling configuration changes or performance problems. &nbsp;Remember how long it took you to solve that first issue you had? &nbsp;The longer our site is down the more money we don't make. &nbsp;</p>
<p><strong>Developer Training</strong></p>
<p>Administration training is only part of the costs. &nbsp;Development training also costs around the same amount ~$2000. &nbsp;But now we have another problem. &nbsp;Time to implement new functionality will increase as developers have to learn a new development environment. &nbsp;Earlier I mentioned that time was money. &nbsp;They same still applies in development except it's the time to market or time to execute new functionality that suffers. &nbsp;When competitors beat you out that business that you could have picked up. &nbsp;Lost revenue. &nbsp;Short and simple.</p>
<p><strong>Software</strong></p>
<p>Hardcore administrator types like to say that they only way to interact with systems is through the command line. &nbsp;Don't get me wrong, command line has its place and I use it when I have to, but I prefer the simplicity of the GUI to interact with systems. &nbsp;Most open source will come with tools to interact with the database but you'll see some costs in ETL tools. &nbsp;And those aren't typically free. &nbsp;In our enviroment we work with flat files, XML and move data from other systems. &nbsp;Our cost for ETL tools would like require the purchase of a tool suite to handle all we do. &nbsp;You could also develop your own tools but now you're looking at time and effort to develop new software. &nbsp;Something else to support too.</p>
<p>The costs I mention above are one-time expenditures so once we pay them we won't have to pay them again. &nbsp;But it could represent a cost that was unexpected depending on how experienced your staff is. &nbsp;There are still intangible costs associated with a migration: &nbsp;stress of migration, work life balance suffers, uncertainty of job since you're no longer the expert. &nbsp;These do add up, it's just hard to put a figure on them.</p>
<p>Now I'm not suggesting that I don't want to consider open source database servers. &nbsp;I enjoy learning new things. &nbsp;This is no exception. &nbsp;But to suggest that moving to open source alternatives is free is simply insane. &nbsp;We just need to make sure that understand and communicate that moving to open source will not free even though the software that runs the database will be.</p>
<p>Personally, if you're already on an established database technology you should stick with that technology and upgrade accordingly. &nbsp;If this were a new project, I think SQL Server and open source are both valid options that each carry the same amount of weight. &nbsp;In my scenario coming from a version of SQL Server that is over 10 years old I would say that upgrading is a better bet.</p>
<p>What about you? &nbsp;Have you been in a situation where you had to consider SQL Server and other open source technologies?</p>]]></content></entry><entry><title>I've enabled the task and it still doesn't work!!!!</title><category term="SQL Server"/><category term="SSIS"/><id>http://jdgonzalez.net/blog/2011/2/15/ive-enabled-the-task-and-it-still-doesnt-work.html</id><link rel="alternate" type="text/html" href="http://jdgonzalez.net/blog/2011/2/15/ive-enabled-the-task-and-it-still-doesnt-work.html"/><author><name>J.D. Gonzalez</name></author><published>2011-02-15T19:29:21Z</published><updated>2011-02-15T19:29:21Z</updated><content type="html" xml:lang="en-US"><![CDATA[<p>Today I got the opportunity to work on an SSIS package. &nbsp;I word it that way because I really haven't worked in SSIS in a few weeks. &nbsp;Hopefully that speaks volumes as to how well I write my packages:) &nbsp;During the course of development I disabled a few steps because I know they worked and I didn't want to run them. &nbsp;</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://jdgonzalez.net/storage/sql-server-articles/ssis-enable-issue/package%20with%20tasks%20disabled.JPG?__SQUARESPACE_CACHEVERSION=1297799010818" alt="" /></span></span></p>
<p>But when I try to run the package it immediately succeeds but the enabled task does not run. &nbsp;Why is that? &nbsp;If you look closely, the first step in the sequence container has an expression that needs to be evaluated. &nbsp;In my example below, it evaluated as false so the underlying steps did not process.</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://jdgonzalez.net/storage/sql-server-articles/ssis-enable-issue/package%20with%20task%20disabled%20after%20run.JPG?__SQUARESPACE_CACHEVERSION=1297800540440" alt="" /></span></span></p>
<p>So that I could make it run and prove my point I changed my variable so that the expression would evaluate as true and thus continue with the rest of the package.&nbsp;</p>
<p><span class="full-image-block ssNonEditable"><span><img src="http://jdgonzalez.net/storage/sql-server-articles/ssis-enable-issue/forced%20to%20run%20correctly.JPG?__SQUARESPACE_CACHEVERSION=1297800879690" alt="" /></span></span></p>
<p>This is probably something that we don't experience very often but at least now we know why that happens. &nbsp;I don't know about you but it stumped me for a good hour. &nbsp;I'm glad I cracked the code on this one.</p>
<p>I hope this saves you some time when you're debugging your packages.</p>]]></content></entry></feed>
