How can we help you today? How can we help you today?
Kendra_Little
Hi Greg, Apologies in advance, you've asked a question about one of my favorite topics, so I'll probably write way more info than you actually want  [image]   I would do this in a pre-deployment script in a rerunnable format, something like what is in the gist here:  https://gist.github.com/LitKnd/ae231bcd669a9a6c2cc23aacc0429974 Note: i believe the CURRENT syntax for alter database is 2012+ only, so you may need a variation if you're on a lower version. As soon as you allow snapshot isolation, SQL Server will begin creating versions in tempdb for modified rows, and an extra 14 bytes becomes needed on the rows themselves in the database. For existing production databases where performance matters, I recommend releasing the ability to allow snapshot isolation in its own change window, before you actually begin using it. This allows you some time to observe whether or not the row versioning itself has any negative effect before you add in any changes to actually use the snapshot isolation. Part of the reason for this is that if you have connections running SET TRANSACTION ISOLATION LEVEL SNAPSHOT and then you change the database setting so that snapshot isn't allowed, those connections are going to start getting an error when they try to run queries. So it's worth first enabling the setting and letting that burn in for a bit before you start using it -- just simplifies troubleshooting if anything looks weird. I'm a huge fan of snapshot isolation, please do discuss and follow up if you'd like more info! Kendra / comments
Hi Greg,Apologies in advance, you've asked a question about one of my favorite topics, so I'll probably write way more info than you actually want   I would do this in a pre-deployment script in a ...
0 votes
Hello! Great question. One quick note: you're in the "discontinued and previous versions" section under DLM Automation, I am not sure if you meant to be in the SQL Change Automation section? With the migrations-first approach in SQL Change Automation, you are able to put multiple projects in a single Visual Studio solution if you wish.  However, personally, my experience is that it is valuable and important to de-couple your database changes from your application changes when it comes to important.  A simplified model is: First, deploy initial database changes to "stage" the scene, but do not change customer-facing functionality. Build and deploy these independently, verify they are in place. (Example: add a column that will be used later, but it's not used yet.) This may be multiple changes rolled through the pipeline over time. Later, deploy application changes that add the feature, but include a "feature flag" which determines whether the feature is visible to customers or not. Again, this may be multiple changes. Eventually turn on the feature flag, and expose features to the customer There's a lot of benefits to decoupling the changes this way: if you need to do a rollback, it's quite easy (simply turn the feature flag off). And the design of staging incrementally allows you to make minimal risk incremental changes. Is your question also about building databases with cross-database dependencies, such as a view in one database which references external databases? If so, I can speak to some approaches for that as well, just not sure about the scope of your question. Hope this helps, Kendra / comments
Hello!Great question. One quick note: you're in the "discontinued and previous versions" section under DLM Automation, I am not sure if you meant to be in the SQL Change Automation section?With the...
0 votes