Major Performance Difference Between SQL Server Developer and Standard Edition

So experiencing an interesting performance issue. We found a query that runs in around 6 seconds in our dev environment. However, when deployed to production (same data / same hardware) it takes around 36 seconds to execute. After doing comparison and side-by-side testing (confirmed that all settings are identical) it appears that the only difference is that development is using the developer edition and production uses standard (both SQL Server 2019 fully patched).

I suspect some of the features that are available in development (i.e. Enterprise edition) are causing the performance benefit in dev but don’t know where to go from here. I am fairly confident in this because I provisioned a separate server did the test in Dev (6 seconds) and then reinstalled with Standard and it went to 37.

Any idea what feature(s) are likely causing this difference? Hoping knowing that will help me performance tune this query more (it is pretty ugly at the moment) in Standard Edition since we can’t afford Enterprise in production.

Development Execution Plan: Plan

Production Execution Plan: Plan

Thanks!

Standard way to define a linear operator?

Say I want to define some simple linear operator. I can do this by

f[c_?NumericQ x_] := c f[x] f[x_ + y_] := f[x] + f[y] 

Or let’s define a bi-linear operator instead

f[c_?NumericQ x_, y_] := c f[x, y] f[x_, c_?NumericQ y_] := c f[x, y] f[x_ + y_, z_] := f[x, z] + f[y, z] f[x_, y_ + z_] := f[x, y] + f[x, z] 

My problem is that I need to do this kind of things very often and then the definitions like above are repeated over and over. It would probably not be easy to describe all intended uses briefly here, but I hope that my intentions are clear. Isn’t there some standard concise way to define operators with some common properties?

Are there any rules pertaining to using extremely heavy weapons, either standard or improvised?

I haven’t found any rules related to this subject. Nothing about weight changing the damage of any weapon was seen anywhere, and neither was there anything on the improvised weapon.

Have anyone seen house rules that modified the damage of standard weapons that happen to be extremely heavy by design? Like instead of using a Warhammer weighing 2lbs someone wants to use one that is 20lbs.

Using everyday items that are not included in the official list of weapons are generally counted as attacking with an improvised weapon, like a chair or a wine bottle. But the problem is, what if the improvised weapon in question is so ridiculously heavy that it no longer makes logical sense for it to only inflict 1d4 damage?

Consider The Bag of Holding, which will always be 15lbs. (For reference, a battleax is weighed at 8lbs and heavy crossbow weighs 18lbs) Even if the texture of the bag in question is soft leather, when you swing that bag to hit someone or someone, the weight and momentum itself should be plenty enough to crush things.

PS: Not that I would want to swing that thing around! Damaging the bag could be disastrous.

Swinging around a sack with a rock is definitely an improvised weapon with 1d4 damage. But if someone swings a regular sack filled with a lot of rocks (or with tons of loot and gold),filled the bag with more than 50lbs worth of stuff and swung it around? Or 100lbs? (Assuming the sack doesn’t rip or fall apart before the smashing hit connects).

Speaking of which, would using a gigantic heavy table that is capable of seating twenty people as an improvised weapon during the bar fight in the tavern really only do 1d4 damage?

How to set up phpcs with WordPress coding standard (in March 2021 with PHP8)?

Trying to set up PHP_CodeSniffer with the WordPress Codings Standards. I’m running PHP v8.0.3 and phpcs v3.5.8.

WPCS is installed via

git clone -b master https://github.com/WordPress/WordPress-Coding-Standards.git wpcs 

The installation worked, but running phpcs leads to this error:
phpcs: Uncaught TypeError: vsprintf(): Argument #2 ($ values) must be of type array, string given in file.php

This is apparently an issue with WPCS and fixed in this commit. The commit seems to be not merged into master yet, so I checked out the develop branch. This appears to fix the above mentioned issue but causes another error:
phpcs: Referenced sniff "PHPCSUtils" does not exist

The proposed solution for fixing this issue is switching to the master branch, which brings me back to square one.

So both master and develop don’t work for different reasons. I guess could change the source code in the master branch manually, but that doesn’t seem to be a sustainable fix.

Is there a better way make phpcs work with the current versions of PHP and WPCS?

Can a standard Kobold Warrior make a Sneak Attack with a spear?

The standard Kobold Warrior has the Sneak Attack ability, which specifies:

The kobold warrior deals an extra 1d4 precision damage to flat-footed creatures.

But the general description of the Sneak Attack ability in the glossary says:

When the monster Strikes a creature that has the flat-footed condition with an agile or finesse melee weapon, an agile or finesse unarmed attack, or a ranged weapon attack, it also deals the listed precision damage. For a ranged attack with a thrown weapon, that weapon must also be an agile or finesse weapon.

The preface to Creature Abilities also says:

The statistics for individual creatures might alter the traits, the number of actions, or other rules of these abilities. Anything noted in a specific creature’s stat block overrides the general rules for the ability below.

The only weapons the kobold warrior has are a spear and a sling. Does this mean that he can only use his sneak attack with the sling (since a spear doesn’t have the agile or finesse traits)? Or is its own description of the Sneak Attack ability overriding the general one, and removing all the prerequisites?

If undead exist, why do cemeteries exist & cremation not a standard?

I have less fingers than the nr of cemeteries I cleared in campaigns of various scenarios and game mechanics. I find time and time again cemeteries crawling with undead. Either graves or crypts.

I understand the exotic/horror nature of a cemetery but if it happens once, twice, a million times, surely some peasants can get the hint and burn their dead?

A friend said that improper burial through fire angers the god who wants xyz ritual, that some undead are ghosts & other incorporeal undead BECAUSE they can’t find their body so they throw a major ragequit.

Surely there must be a better reason.

How to improve Oracle Standard Edition’s performance for testing?

There’s a great post on StackOverflow about improving Postgres performance for testing.

https://stackoverflow.com/questions/9407442/optimise-postgresql-for-fast-testing/9407940#9407940

However, there aren’t any resources on doing the same for OracleDB. I don’t have a license for Enterprise Edition, that has features like ‘In-Memory’ columnar storage that would almost definitely improve performance.

https://docs.oracle.com/en/database/oracle/oracle-database/19/inmem/intro-to-in-memory-column-store.html

I’m really limited in what I can try in Standard Edition. It’s running in a Docker container in a CI pipeline. I’ve tried putting the tablespace on a RAM disk, but that doesn’t improve performance at all. I’ve tried fiddling with FILESYSTEMIO_OPTION, but no performance change.

Would anyone know of some more obvious things I can do in OracleDB in a CI environment?