LessThanDot Site Logo

LessThanDot

A decade of helpful technical content

This is an archive of the posts published to LessThanDot from 2008 to 2018, over a decade of useful content. While we're no longer adding new content, we still receive a lot of visitors and wanted to make sure the content didn't disappear forever.

Surrogate Keys Bite Back

Not too long ago I got a work order in that was requesting help with removing duplicate records out of a report. This report, and the database it was built upon, was built solely by a co-worker that left two years ago. This report just displayed a list of project numbers and some data related to them. I opened up the project table and voila! I found some duplicate projects. I noticed that the table had an identity field that was the primary key, but the project number didn’t have a unique index on it, leaving the table open to allow someone to put in the same project multiple times, either on purpose or accident.

Read More...

Chicago Events – SQL and .NET

It’s been nearly two years now since joining the Magenic team and it’s been a great ride so far. Well, the ride is about to get even better. Next week, Magenic is hosting a new event titled the BI Summit. This event is a focus point on the decision makers and the team players that hold key factual aspects in how a company attacks Business Intelligence. Magenic has long been a monster of a custom development consulting company with monster names at its disposal.

Read More...

Metrics as a Service – Librato Metrics

Several weeks ago I posted a three part series on the ability to use available online logging services for instrumenting applications. None of the services overwhelmed me, but there was an additional service I found that caters specifically to numeric metrics. Given that I’ve had a tab sitting open on the Librato site for the past several weeks, I thought it was time to actually do the review. Sample screenshot from interface Spoilers: I liked it.

Read More...

Migrating Replication Subscribing Databases

In a merge replicating world, laptops are typically the majority of the subscribing machines. With laptops and any other user controlled computer, changes can come up – upgrades are needed or new hardware rollouts. These all cause the need for a new or rebuilt laptop / desktop to be issued to users. Many times when the need for a rebuild or replacement happens and the machine was subscribing to a merge replication publication, the steps taken are to apply a new snapshot.

Read More...

Index Seek on LOB Columns

I often run across databases that store files, images, and all sorts of large object data types, better known as LOBs. These databases will typically become problematic as storing these types of objects in a relational database has some performance problems with it. Some of those performance problems revolve around excessive server resource consumption and limited indexing abilities which make requesting or querying the data as painful as the performance of inserting data into them is.

Read More...

Followup on ORMs for Batch Performance

A few weeks ago I looked at a project by Luke McGregor (blog|twitter) that benchmarks a variety of ORMs doing common operations at the 1 to 10,000 record scales. I was curious to see how the ORMs he had included would fare against common ADO methods and how those ADO methods would compare to one another. My Original Post: Evaluating ORMs for Batch Data Performance Source Code: My fork of StaticVoid.

Read More...

Windows 8, Visual Studio 2012 and Windows Server 2012 released to manufacturing

Microsoft just released a press release announcing that Windows 8 has been released to manufacturing (RTM) Here are the important dates for us developers August 15th: Developers will be able to download the final version of Windows 8 via your MSDN subscriptions. August 15th: IT professionals testing Windows 8 in organizations will be able to access the final version of Windows 8 through your TechNet subscriptions. August 16th: Customers with existing Microsoft Software Assurance for Windows will be able to download Windows 8 Enterprise edition through the Volume License Service Center (VLSC), allowing you to test, pilot and begin adopting Windows 8 Enterprise within your organization.

Read More...

Book Review: Troubleshooting SQL Server – A Guide for the Accidental DBA

My latest SQL Server read was Troubleshooting SQL Server – A Guide for the Accidental DBA, by Jonathan Kehayias (blog | twitter) and Ted Krueger (blog | twitter). This book is designed to teach people not familiar with the intricacies of SQL Server day-to-day troubleshooting steps and techniques.  Topics that are covered include disk I/O configuration, CPU, memory, indexes, blocking, deadlocks, transaction logs, and – my favorite – accidents waiting to happen.

Read More...

VB.Net: Guess the result – The explanation

SO yesterday (on a Sunday) I asked you to look a this code. And guess what it did. ```vbnet Module Module1 Sub Main() Dim c1 As New class1 Console.WriteLine(c1.Name) c1.Name = "test1" test1(c1) Console.WriteLine(c1.Name) c1.Name = "test1" test2(c1) Console.WriteLine(c1.Name) Console.ReadLine() End Sub Public Sub test1(ByRef c1 As class1) c1 = New class1 End Sub Public Sub test2(ByVal c1 As class1) c1 = New class1 End Sub End Module Public Class class1 Public Property Name As String End Class``` And in essence you should now the difference between ByVal and ByRef for reference types.

Read More...

VB.Net: Guess the result

Module Module1 Sub Main() Dim c1 As New class1 Console.WriteLine(c1.Name) c1.Name = "test1" test1(c1) Console.WriteLine(c1.Name) c1.Name = "test1" test2(c1) Console.WriteLine(c1.Name) Console.ReadLine() End Sub Public Sub test1(ByRef c1 As class1) c1 = New class1 End Sub Public Sub test2(ByVal c1 As class1) c1 = New class1 End Sub End Module Public Class class1 Public Property Name As String End Class Before running the above try guessing the result. BTW it’s not a bug, it’s normal behavior.

Read More...