Lack of Memory

  • Comments posted to this topic are about the item Lack of Memory

  • I wonder why there's always the justification that developers are expensive when it is they that wrote the code that's causing the problem.  Having them write the same crap code faster is a totally losing battle.

    If you want to do something right, train the developers to write better code, and then make their jobs (and their managers' jobs) depend on it.

    As soon as you've accomplished such a thing, you'll find that the cost of developers will actually drop a lot compared to their throughput which no longer requires either functional or performance rework.

    Like the old saying goes... "What if we train our developers and they leave"?  Better question... "What happens if we don't and they stay?" 😉

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • One of the things end users can do is baseline their applications.

    412-977-3526 call/text

  • Jeff Moden - Wednesday, January 2, 2019 10:07 PM

    I wonder why there's always the justification that developers are expensive when it is they that wrote the code that's causing the problem.  Having them write the same crap code faster is a totally losing battle.

    If you want to do something right, train the developers to write better code, and then make their jobs (and their managers' jobs) depend on it.

    As soon as you've accomplished such a thing, you'll find that the cost of developers will actually drop a lot compared to their throughput which no longer requires either functional or performance rework.

    Like the old saying goes... "What if we train our developers and they leave"?  Better question... "What happens if we don't and they stay?" 😉

    Not every business allows for training. Where I work they haven't done any training in decades, or so I'm told. I'm sure where I work isn't the only place that's like this.

    Rod

  • I always find it mind boggling that companies are willing to pay 7 figure software licensing costs but then get stingy about a few hundred dollars worth of RAM.

  • ZZartin - Thursday, January 3, 2019 10:47 AM

    I always find it mind boggling that companies are willing to pay 7 figure software licensing costs but then get stingy about a few hundred dollars worth of RAM.

    Pretty sure we paid a LOT (i.e. 6 or 7 figures worth last year) to add more RAM arrays to our virtualization platforms to meet the escalating RAM requirements, so letting processes just run wild now means the process gets kicked back for review by DBA's and senior devs.

    Probably would be nice to have those checks up front (i.e. before we first crash the server!!!!), but hey - at least we now have the check in place 😀

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • robert.sterbal 56890 - Thursday, January 3, 2019 6:20 AM

    One of the things end users can do is baseline their applications.

    Baselines alone won't work.  I've helped several companies that had baselines... their baselines totally sucked but they didn't think so... at least not at the start.  A common phrase has been akin to "Well of course our CPU and disk system is busy and we need a ton of TempDB... it's doing work against several million rows".  Can't blame them, though... People just don't know what they don't know.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Doctor Who 2 - Thursday, January 3, 2019 9:03 AM

    Jeff Moden - Wednesday, January 2, 2019 10:07 PM

    I wonder why there's always the justification that developers are expensive when it is they that wrote the code that's causing the problem.  Having them write the same crap code faster is a totally losing battle.

    If you want to do something right, train the developers to write better code, and then make their jobs (and their managers' jobs) depend on it.

    As soon as you've accomplished such a thing, you'll find that the cost of developers will actually drop a lot compared to their throughput which no longer requires either functional or performance rework.

    Like the old saying goes... "What if we train our developers and they leave"?  Better question... "What happens if we don't and they stay?" 😉

    Not every business allows for training. Where I work they haven't done any training in decades, or so I'm told. I'm sure where I work isn't the only place that's like this.

    I can guarantee that the place you work isn't the only place like that.  The training that I'm talking about comes from the DBA during design reviews and peer reviews.  Of course, there are a whole lot of places that don't do either one of those... and it usually shows, especially on forums like SSC.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • ZZartin - Thursday, January 3, 2019 10:47 AM

    I always find it mind boggling that companies are willing to pay 7 figure software licensing costs but then get stingy about a few hundred dollars worth of RAM.

    I also find it mind boggling that the people selling the 7 figure licensing deals can't give you solid specs on how what platform to put it on.

    412-977-3526 call/text

  • robert.sterbal 56890 - Friday, January 4, 2019 8:44 AM

    ZZartin - Thursday, January 3, 2019 10:47 AM

    I always find it mind boggling that companies are willing to pay 7 figure software licensing costs but then get stingy about a few hundred dollars worth of RAM.

    I also find it mind boggling that the people selling the 7 figure licensing deals can't give you solid specs on how what platform to put it on.

    Because the answer is usually it depends on what you're doing with the software.  Sometimes you need certain features but not necessarily super hardware to run it.

    I'm talking about companies that will gladly pay the licensing but then for some reason not be willing to pay for the hardware when it's actually needed.

  • ZZartin - Friday, January 4, 2019 10:16 AM

    robert.sterbal 56890 - Friday, January 4, 2019 8:44 AM

    ZZartin - Thursday, January 3, 2019 10:47 AM

    I always find it mind boggling that companies are willing to pay 7 figure software licensing costs but then get stingy about a few hundred dollars worth of RAM.

    I also find it mind boggling that the people selling the 7 figure licensing deals can't give you solid specs on how what platform to put it on.

    Because the answer is usually it depends on what you're doing with the software.  Sometimes you need certain features but not necessarily super hardware to run it.

    I'm talking about companies that will gladly pay the licensing but then for some reason not be willing to pay for the hardware when it's actually needed.

    What's ironic about that is if the companies writing the software did a better job, there wouldn't a need for such hardware.

    I did some work for a small company here in Michigan because they were having some performance problems.  Their specs required that the servers that the software operated against must have 24 core and at least 256GB of RAM and a certain network configuration and certain dual NICs, etc, etc..  The customers wanted the software and so they complied... only to find out that the software still crawled.  The small company kept blaming the customers even though the customers had complied with the hardware specs.  They reminded the customers that those were the "minimum" specs.  The machine they developed the software on was twice as robust and every bit of data was seriously short-haul (the server was just feet away from the developers) and most customers have a "server center" at least yards away. 

    One of the things their software did would allow the user to setup a dozen or so parameters and then the software would build and populate a table on the server... the code did an INSERT/VALUES for each row of the table... for 225 THOUSAND rows.  They just couldn't understand why that would be a problem.  Stupid.  I showed them how to pass just the dozen parameters to SQL Server and generate the 225 Thousand row table using Cross Joins (which was the equivalent to what they were doing in the app) and got the times down from more than an hour to about a quarter of a second on machines that would be considered an almost substandard desktop box.

    The whole reason for the failures of this company was because they didn't have the right kind of training.  The really stupid part is that they didn't even realize that they needed training because they were all "experts" on the front end and were positive that they were doing things in the best way possible.

    Dear Managers... wake the hell up.  Get some training for your people.  It'll actually make you look like a hero because the people working for you will be more effective and they might even end up liking you.

    Dear people... wake the hell up.  You don't know it all even if you're classified as an "expert".  If the company isn't training you, train yourself.  If you're not learning something new every day, then you're actually getting dumber every day.  If you like the company you're working for, you training yourself will make you more valuable to the company and you might even get a raise.  If you don't like the company (usually the managers and the culture) you're working for, then the self-training will help you get that next job, which could be your dream job.  It's not going to kill you or your private life if you spend a couple of hours a week at home training yourself.

    Step 1, which could take several weeks just to start and would then become an ongoing process, is to start finding out what is actually possible and find out what you don't yet know you don't know.  The only way to do that is to get involved in some sort of professional community, like this forum, and at least start reading the forum posts and solutions... every week.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • and then there are companies like one of my current customers:

    Oversize varchar fields by a good margin in case "you ever might need to add more text than you ever did before the last 10 years". Which, of course in return means that Memory Grant Estimates will never be close to perfect, let alone optimal.

    For me it's still the main talking point with my customers when it comes to running SQL Server efficiently: Do you really have enough RAM? How about your Datatypes?

    And then at times funny things happen: You get more RAM and more CPU (since I got there basically double the CPU Count and quadruple the amount of RAM) but you have to discover since the SQL Server is 2012 and running on Windows Server 2008 R2 it seems like vCloud Director / ESXi is unable to pass NUMA Info to the SQL VM which makes it assume it has 1 Socket with 8 Cores and not 2 Sockets with 4 Cores, gives you a lot of fun and especially reasons why externally controlled Cloud Environments can be bad for your own troubleshooting efforts when the Service Provider basically shares about no info about the infrastructure with you.

    Still the best one would be: 8 Sockets with 1 vCPU each, combined with a Standard Edition License has people wondering why SQL Server keeps getting unresponsive at 50% CPU Load. :Whistling:

  • Within the next five years, knowing how much memory is installed in the server(s) your query is running on will be about as relevant as knowing how many cubic centimeters of displacement are in engine of the driver-less Uber car that just picked you up at the airport.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

Viewing 13 posts - 1 through 12 (of 12 total)

You must be logged in to reply to this topic. Login to reply