Author: way0utwest

  • Upgrading Your OS

    I loved Windows 7. I haven’t felt that way about many of the Windows systems. I tolerated 3.1, preferring DOS and Solaris at the time. Windows 95 was great, with me skipping Windows 98 after installing it on a few PCs at work. I thought Windows 2000 was OK, and did really like XP. I avoided Vista, running XP until I got a beta of Win 7. Then I thought Microsoft had made a great move, slimming down the OS and making it faster on the same hardware.

    I skipped Windows 8 and moved to Windows 10, so I guess I like every other version of Windows. That makes sense. I’ve often felt every other version of SQL Server was really good, with some slim, not quite sure I like this, not quite sure this is worth the money, in-between versions. That might be changing as I liked SQL Server 2016, 2017, and 2019 is looking good.

    I ran across an article on the move to Windows 10, which Microsoft has been pushing and which as proceeded very well. Many people upgraded, especially with the free offer to upgrade. However, the pace of change has leveled off, with Windows 10 at 44% recently and Windows 7 at nearly 37%. The disconcerting issue is that the latter number has barely changed from the end of 2018. With Windows 7 expected to EOL in Jan of 2020, Microsoft is trying to push people forward.

    There are all sorts of reasons people are loathe to update their OS. Compatability issues, the comfortable feeling of knowing how a system works, and certainly resource concerns. I wish security was a higher level of concern for more people. When Win7 EOLs, enterprises can pay $200/yr/machine to get patches, but there is no option for Home users. I think this is a little short sighted as many Home users might not see value in upgrading, but they (and the rest of us) need secure machines on the Internet. Why wouldn’t a $50/yr charge for security patches make sense?

    Modern hardware is powerful and lasts longer, so I could understand an individual that started running the OS in 2011 not seeing a need to change. They are happy with a PC that runs email, browses the web, plays solitaire, and manages money. Do these people need to upgrade to Win 10? I don’t know that they do, and the vast majority of the world are consumers, not creators, so the much of the work done in Win10 isn’t useful for them.

    There isn’t a right answer here, and certainly there are security concerns from an older OS, but at some point the OS and hardware will be good enough for most people to stick around a long time. Microsoft ought to be prepared in those cases to enable very long term support, perhaps with some yearly charge, to provide patches to the OS. I don’t know if Win7 is the place to do that, but I do think that Win10 ought to be around for a long, long time with paid support.

    Steve Jones

    Listen to the podcast at Libsyn.

  • Simulating Load

    I needed to generate some load for a demo and wasn’t looking forward to doing it. I was in a hurry, and didn’t want to deal with a lot of setup. Fortunately, I’d seen a technique for doing this in one of Brent Ozar’s classes. I’d taken a couple, and they’re good. One of the items I took away was the need to simulate a load that might help me analyze my system.

    Brent’s written about his technique, and I decided to adapt this to my own demo database. I took his code, and then added a few items.

    Examining Parameters

    I was happy with a load of ten items, so that makes things simple. I could reuse most of Brent’s code, but unlike his system, I have different parameters in use for different types of calls. In examining the types of procedures that might generate load, I found I had these types of parameters

    • Integers
    • Dates
    • Strings

    The basic code uses RAND() to generate a number, but what about the other items? I didn’t want scalars, so I needed random other items.

    For dates, I still used a similar random integer, but then used that with DATEADD() to alter an existing date. My code would generate a separate random number and then use that to go backward in time a certain number of days.

    SELECT @off = RAND() * 1000;
    SELECT @dt = DATEADD(DAY, 0 - @off, SYSDATETIME());

    For strings, it was different. In this case, it was search items and while there can be a (seemingly) infinite number of possibilities, I can simulate this. I can select from the table and use a random ordering to get different terms. If this isn’t efficient, that’s fine. I want a load on the system.

    DECLARE @term VARCHAR(100);
    SELECT @term = SearchTerm
    FROM dbo.SearchTerms
    ORDER BY NEWID();
    SELECT @term;

    Once I had these techniques, I built a stored procedure just like Brent’s, and then replaced his procs with my own. I built parameters in front of the CASE statement, and then use the appropriate random parameter for the procs as needed.

    Running the Load

    I used the same SQLQueryStress tool that Brent did, setting the connection credentials, threads, and iterations as needed to generate load. This gives me control over the load I need to generate.

    I had 10 possible procedures, each of which runs with different parameters each time the proc is called. For 100 iterations of 4 threads, I generate 400 calls to my load procedure, which generate 400 random calls to 10 other procs with different parameters

    A quick and dirty load on my server. Not representative of any production load, but good enough to stress the system and let me look for places to tune code. And, a way that I might get some of the weird random things users do.

  • Republish: Are We Suckers?

    Last day of holiday in New Zealand, before back to work. Republishing: Are We Suckers?

  • Building or Buying Analytics

    One of the decisions that I’ve been involved with at the beginning of every software project is whether to buy software to solve the problem or build our own. This might be a quick “is there software anyone knows about to do this?” query, or an in-depth review of the marketplace or something in between. Often it’s a limited discussion on whether we think the problem is close enough to one other organizations have. If so, let’s buy something. If not, we might need to build an application to get what we want. Key card software for our doors? Buy it. Managing our core business flow, I might buy this.

    Analytics, or what has often fallen under the umbrella of business intelligence (BI) is an area where technology groups often wonder what’s best. I have seen no shortage of decisions in the past for how best to implement this feature for our organization. Ultimately, I think this piece summarizes this well: time will make the decision easier.

    If you need this done now, buy it. If you don’t have development resources, buy something. If you need similar analytics to what many companies need, buy this. Do you trust vendors to spend enough time on security, buy their service.

    Those are good reasons to adapt your process, your view, your requirements. If you can be flexible, it makes sense to buy some software that provides analytics for your data. Many companies have had success with purchased products, like Tableau, Qlikview, Cognos, Power BI, or some other pre-built package that allows users to analyze their own data. You might even just give them access to all views (or even tables) and ignore the entire part of your business.

    If you have time, however, I do find that developers working with analysts can truly add value and insight to the information a business holds. They can be responsive, while also providing knowledge about ways to structure and summarize data, and perhaps even identify those places where the way in which we gather and use data ought to change, perhaps even add new data elements.

    I do like the self-service, pre-built packages for multiple reasons, not the least of which is that users can do some Proof of Concept work themselves. I think Power BI Desktop is one of the best ways to do this today, using existing data sources that users can access. Let them go crazy and try whatever wild idea they have with data. When they find something useful, something that others need to also access, and something that becomes important to the organization, then it’s likely time to involve IT to provide stabliity. If there are also ways to better structure the information and perform a more detailed analysis, this might also be the time to customize the way the analytics package works, and again Power BI provides the ability to do this.

    Making this decision is hard, and it might not ever be done, but I do think buying is a good place to start, especially with the wide variety of packages out there, but you might find yourself changing your mind as your analytic needs mature.