Posts

But can you Tuna Fish? Database Optimizations worth reviewing

Image
T here are always new articles about the web that will offer new ways on how to optimize the performance of your database. There are hardware focused optimizations that can and do improve your users data access, and you can fix things at the code level too.  Then there is optimizing your database engine to squeeze out every last bit of performance. Are you just a bit curious on how to get started? A recent blog article targets many areas in your code that you can mitigate to help deliver the best performance, there are also indexing guides which I don't think I've ever covered in my blog, check it out here: https://www.toptal.com/sql/sql-database-tuning-for-developers which covers these topics, Database Optimization (in the Codebase) Indexes Tune SQL query performance by avoiding coding loops Avoid correlated subqueries Select sparingly The use of temp tables SQL Server Performance Tuning: Execution Plans To optimize your existing indexes you can refer to ...

Keeping it Real (short) How to shrink a transaction log file

Image
Space, the final frontier ....  The common wisdom on your Database Files is to NEVER shrink your data files.  Space is cheap,  but it's worth knowing how to shrink the size of your data files especially when you are running out... How to Truncate Log files in Sql Server 2008 If your transaction log files are growing beyond their disk size, it's  important to consider why your log file keeps growing?  Databases Log Files will use space to quickly write to disk the many operations it requires and thus some file growth is expected when you reach beyond the initial sizing of your database.  When you notice continual growth of your transaction log file, you need to start looking at your backup strategy to help manage it.  Did you set your recovery model to the appropriate one?  Should you be performing more transaction log backups? for more information on the shrinkfile operation, consider reviewing the tech doc at Microsoft. You ...

What's up?

I'm coding that's what's up... http://xcodethis.blogspot.com

Lighting Quick Table RowCounts for your Tables

Image
If you are familiar with TSQL and want to get a row count from your tables you might be tempted to run a simple Select count(*) from myTable This however can be a lengthy wait if you have millions and millions of records. Not to mention the potential impact on a production system. Instead consider selecting your rowcounts from your system tables SELECT OBJECT_NAME(id), ROWS, indid FROM sysindexes WHERE indid AND OBJECT_NAME(id) IN ('myTableName') Looking forward beyond Sql Server 2005 and beyond the following select should be used and will provide you with the needed information as system tables access may be depracated SELECT DISTINCT OBJECT_NAME(P.object_id) AS [Name], ROWS FROM sys.indexes I INNER JOIN sys.partitions P ON P.object_id = I.object_id AND P.index_id = I.index_id WHERE I.index_id AND OBJECT_NAME(P.object_id) IN ('myTableName') So why am I searching for index smaller than 2? In short from the article below you'll find that pure data pages have indi...

New Look... New Stuff

Image
Hi everyone... So some new things are going to be happening with my blog... I'm going to pick some helpful hints that help me and my fellow DBA's with what we do on a Daily or weekly basis. These should be helpful for all but you are more than welcomed to share your experiences on what Tips help you the most. One thing that is comming is an article on Wait times... I had the pleasure of trying out Confio's Ignite software. And while it does some really great things, such as pointing out where the bottle necks are for performance on your server. It can be pretty pricey and really does not introduce anything you can't already do. I'm planning on rolling out a short but continuous list of I/O wait times what they are and how to use them to boost performance on your SQL Server within the coming weeks, I will not concentrate on Sql Server 2005/2008 alone, I know that is the trend in the tech community but there are still many organizations that use Sql Server 2000, ...

iPad Wifi Networking Issues

Image
I had recently been reading a lot about the the wifi issues surrounding the iPad, and though this post is not SQL related, it kinda is for me. You see I was using a Remote Desktop app on my iPad when the connection started to drop out on me. Something new that I had started to experience. I determined that it had to do with bluetooth being enabled. I tried disabling it and the iPad returned to it's normal bandwidth loving behavior... the thing was that I was using a bluetooth keyboard with it to type up my sql... so I had to find an alternate solution... Solution one... you can actually just turn up the brightness on your iPad and it will keep the wifi from going into sleep mode.. wierd right? or in my case so I didn't need to fumble around I decided to changes some wifi settings of my TrendNet Router, I found the settings at the macrumors forum, http://forums.macrumors.com/showthread.php?t=889348&page=6 the settings on my wireless that fixed my problem (apparently perm...

New Ranking tutorial

Image
This is kinda cool. I currently do not have a need for it as my job does not require me to write new tsql code on a daily basis anymore. However, when I used to write ranking code it was always a LONG and TEDIOUS process not really because of the Ranking code, but mostly because of what it takes to get to the ranking code. ARG! My Ranking routine believe it or not consisted of a small segment of code with a CURSOR! This is an snippet of code from what I used to use and is actually still in production today declare tstcur CURSOR FOR SELECT id FROM @temp declare @rank as integer declare @tID as integer OPEN tstcur FETCH NEXT FROM tstcur INTO @tID WHILE @@FETCH_STATUS = 0 BEGIN select @rank = count(*)+1 FROM @temp WHERE final_score > (select final_score from @temp where id = @tID) insert into @temp (id, Division, responses, max_points, total_points, final_score, rank) select id, Division, 0, max_points, total_points, final_score, 0 from @temp where id = @tID update @temp set...