Today, I got to go play in the fall leaves with my family out at the Nature Center. What a great day! We are still having awesome weather and the leaves are perfect right now. We even got to actually watch them fall from the trees. The kids ate it up! It was Suzanne’s idea to go take them out. In the past years, we never needed to go somewhere to experience leaves.
Recently, I had the opportunity to brush up on my SQL Server memory tuning skills. It’s been a while since I needed them, but I thought I’d throw out what I used for someone else’s future benefit. First, some background knowledge: There are different physical memory limits for each Windows release. The virtual address space (set of virtual memory addresses) is limited to 4 GB for 32-bit Windows. The virtual address space is divided into two 2 GB partitions: one for use by the processes and other reserved for use by the system.
During the course of one of my last blog posts on Cursors, I ran across a niche piece of information that I didn’t realize. I had always read that FAST_FORWARD CURSORs were the fastest and least locking of the different CURSOR types. What I didn’t realize was that if the SELECT statement joins on one or more tables with a trigger table (INSERTED/DELETED), the CURSOR is converted to a STATIC CURSOR!
Here is a quick way to find the last reboot date and time of a SQL Server instance. For SQL Server 2000 or 2005, use: SELECT crdate FROM master.dbo.sysdatabases WHERE name = 'tempdb' For SQL Server 2008, use: SELECT sqlserver_start_time FROM master.sys.dm_os_sys_info
A few months back, we had a stored proc at work that was using CURSORs pretty heavily. It had CURSORs inside of CURSORs. This proc was one of our oldest, biggest, and most involved procs at over 2050 lines. On larger clients, it could be called thousands of times a day. All of the cursors were FAST_FORWARD types, which should have at least been somewhat performance friendly. However they were SELECTing from tables that had triggers which implicitly converted the cursor type to be STATIC.
It seems to me lately that I am continually writing, essentially, the same program for every problem. The language has changed from VB6 to VB.NET to C#, but the pattern behind the design is the same. It’s always a Winform front end, common logic/objects in a middle dll, and data access from another dll that usually hits stored procedures on a SQL Server. Not that it’s a bad design, because it’s not.
A few months ago, I was talking with a friend about programming on an iPhone. We were discussing the potential audience that an iPhone commanded. I didn’t know much how the iPhone operated (I don’t own one), however, it did pique my interest enough to research it a bit. So, shortly after that conversation, I went to the Apple Dev Center and perused the Getting Started Documentation. Well, it was more than a little confusing.
In starting this blog, I have to ask, What amount and kind of content makes up good blog? My goal is for it to define me as a familyman, and professional. It should be about what interests me. That being technology, family, books, & thoughts. I believe that it should reflect the balance in life in which I do all of those things. For me, about 50% of my time is consumed by technology, 30% is enjoying family, and remaining 20% is split evenly between books & thoughts.
Personal branding is a new concept that I’ve just recently discovered. The idea is that your professional and personal lives are interconnected. Meaning that what you do after work is just as important as what you do during work. This new blog is the first step of many to brand myself. I am really excited about this new self-packaging approach. Hopefully, it will give a better perspective of what goes on in my whole life, what drives me, what I’m thinking about, and where I’m going.