- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
In addition to measuring days in "tables", I propose to measure months in "developers": surely no sane developer can stay in a crazy job like that for longer than a month.
Admin
I had a similar Oracle experience. I needed to store some latitude and longitude and discovered Oracle had a perfect data type for it. It was right there on the database. I tried out the database type in a test environment -- it worked great -- but when I asked DBA to deploy it they said we weren't licensed for it and I just needed to rewrite my code using floating point numbers.
If we're not licensed for it, why is it readily available in the environment? I suspect it's so people can slip up and then Oracle can audit them and charge them.
Oracle sucks.
Admin
A table a day keeps performance away.
Admin
Coders get paid per line of code, maybe the database designers get paid by the table?
Admin
Yes, Oracle is that evil. There are features you haven't paid for, but aren't prevented from using, and they will charge you serious money if they catch you.
I like the database (though I appreciate I might be an outlier there). But I will avoid dealing with the company as much as possible. See also Java...
Admin
IYAM TRWTF is the final argument to convert().
Admin
Every day is tableday!
Admin
I'm pretty sure once upon a time table partitioning was a Expensive Edition only feature in Microsoft SQL Server.
Admin
I like that table naming convention. You can't go wrong by naming the tables
data
. It perfectly desribes the contents: data.Admin
lmao
Admin
I worked in a shop which did database work. We spent a lot of time writing ( or cutting//pasting//editing ) SQL queries which we ran only once or a couple of times. The lead's solution to this was to create a new directory for every day's work, so we had essentially a fresh workspace to start every day. This also preserved the previous day's ( month's, year's ) work so we could look back and understand what happened. It was brilliant.
Admin
Is it this Ayende? https://ayende.com/blog/
Admin
Oracle pulled a worse trick for me. We had to upgrade from version 11 to one of the most recent (iirc it was 19). When we first upgraded the dev instance, everything worked fine; dev instance was only accessed by engineers so basically little traffic. We had a staging db that was serving multiple test application server (~7/8), each with their own connection pool - "mostly" replicating production. We didn't have ephemeral environment but we kept these few environment so that any engineer could reserve as needed for test and UAT with product.
Once the db was upgraded, everything felt fine but ... the next morning all staging instances were failing. Apparently we missed that on standard edition Oracle 12+ had introduced a "resource manager" that would throttle concurrent connections based on number of CPU (even in the cloud), while Oracle 11 could easily handle 100+ idle connection with no issues.
There was no other way than upgrade to the Enterprise Edition - half a million euros of extra licence costs...
Admin
For some of the extra Oracle Enterprise packages (like Spatial which I believe contains that indexable lat/long type), there are uninstall scripts available you can run on your test instances to not accidentally use the features. But dare you if you uninstall them on your prod instances, or suddenly some security updates (if you pay for them) will not install any longer. Using two decimal number types works great for storing lat/long (in my opinion better than floating point types, as the range will not reach 1.0e+10 or similar), but when querying for points within a rectangle or circle, the index (classic B-tree index) will only use one of the coordinates efficiently. Spatial indexes are like Spatial types, a separately licensable feature for the (already expensive) Enterprise Edition.
Also, security updates for non-Linux platforms usually come out 1 to 1.5 months after the Linux ones...
Admin
Yeah. Oracle licensing is pure evil. Nothing is disabled. You're free to use whatever features you want. But the moment you use a feature that you haven't paid the licensing fees for, Oracle will slug you. There's no escaping that; regular audits are a requirement of an Oracle license.
The core technology is good. I'm not going to pretend it isn't. But the licensing model is all about soaking the customer for as much money as Oracle can extract. One of my friends used to work for Oracle; he told me about their support arrangements. Once you have a significant amount of Oracle tech in your company, you can get a bundled support agreement, which is cheaper than support for each individual piece of tech. The catch is, that bundled support agreement has a "high watermark" clause. Once you have paid X dollars for support in a year under that contract, that support will never again cost less than that amount. Even if you reduce your usage of Oracle tech, your support costs will never fall, unless you eliminate Oracle tech from your company entirely.
Any CIO who is not actively planning to move off any and all Oracle tech is not doing their job. Any company that brings in Oracle tech today is just begging to have their wallets filched at every opportunity. There are better options out there for the vast majority of use cases; PostgreSQL would be my first choice for a database, for example, unless there's a specific reason why something else has to be used. Even DB2 (IBM) would be higher on my list of choices than Oracle, and that's knowing that IBM is almost as bad as Oracle on the licensing and support front.
Admin
Oracle's motto: There's a license for that!
Admin
You're right - it used to be. And maintaining partitions used to be hard. There was an art to it, too.
We set up a set of scripts to automatically create partitions, modify views where required, make the magic happen. Those jobs ran for a few years, and then the old (Oracle) DBA who, at first was a "No SQL Server in my shop" person, but, in the end, had to agree that it was fast and worked, and for the last five years, was a supporter, because she didn't have to do anything for this app, just throw a new virtual disk at it once a year left.
The new DBA came in and said that the partitions had to go because it was expensive, hard to maintain, and just too hard for anyone to understand.
When we pointed out that the last-changed dates on the jobs, SPs, and everything else to do with partitioning was five years ago, and there were 0 help desk tickets related to any of it, that was "besides the point - I don't understand it, so it has to go".
I took that as a personal challenge, and when I pointed out to the CIO that 47% of the databases in the organisation were now SQL Server, and since the new head DBA didn't understand them, and they had to go, it looked like there was a now a lot of unplanned, but urgent work that meant we'd have to cancel some pretty important projects.
You can guess what had to go.
Admin
Pretty much. Oracle don't do stuff like using license keys to lock down stuff you've not paid for... which is occasionally convenient if you want to quickly test out something you're not licensed for, but it also means that there's nothing protecting you from accidentally using unlicensed features without realising it. If you use an Oracle stack, you need to be very familiar with the license terms, because giving you enough rope to hang yourself is absolutely their licensing strategy.
Admin
"removed any benefit of partitioning" -- Yes, it is most likely a WTF... BUT this (manual partitioning) does allow different tables to be stored on different physical disks - so that benefit is maintained, but at a potentially huge cost.
Admin
"Now, this is for an MS SQL database, which does not have any weird licensing around using partitions." - The fun of weird licensing begins when you upgrade your hardware in order to increase performance...
Admin
Probably because the people making purchase decisions and the people suffering from them are not always the same or even communicating.
Admin
Yes, some features (including partitioning, data compression, indexed views) come to mind as Enterprise edition only features in SQL Server. (If I remember correctly, they also all worked in Developer, so you could accidentally use the feature in the Developer version.)
They have relaxed these constraints over the years - for example, "Prior to SQL Server 2016 (13.x) SP1, partitioned tables and indexes weren't available in every edition of SQL Server."
However, Microsoft would never sue you for trying to use an Enterprise-only feature in the Standard. You just get an error message instead. (You can be in trouble if you ran Enterprise without an appropriate license, of course!)
Admin
Thanks for the heads up. We're planning a DB upgrade to v19 in which we hope to be able to go from EE back to SE (the new database should have significantly less query load), but limiting the number of concurrent connections could be a problem for us; I've passed part of your remarks on to our DBA for investigation.
Admin
What's really, really fun is an Oracle AND DB/2 shop! It was basically a factory that turned sysadmins into alcoholics