SQLServerCentral - www.sqlservercentral.com

A community of more than 1,600,000 database professionals and growing

Featured Contents

The Voice of the DBA

The V1 Team’s Doomed Redesign

Today we have a guest editorial from Kendra Little as Steve is traveling.

As Redgate’s Database Development Disaster Story Contest continues, we’ve got another story of database design gone wrong from Kendra Little. Tell us your own story here before March 20, 2019.

The V1 Team’s Doomed Redesign

Once upon a time, I worked for a startup that purchased another startup. For the first year, the acquired company's applications operated independently, as they were originally designed. After that point, developers from both organizations began merging together, and a team was created and assigned the task of redesigning the applications of the purchased company to be more scalable. Let's call this the "V1 Team."

The existing production legacy applications involved complex data processing. The idea was that the V1 Team would reproduce almost all functionality of the legacy applications in the initial release of the redone application.

The V1 Team went off and began work. As they worked through their long development cycle, features continued to be added to the production application. These were added to the workload of the V1 Team, continuously increasing the scope of their project and delaying their initial release date.

There were a lot of quite smart developers on the V1 Team, people I enjoyed working with, but I found myself stopping by their area less frequently over time - frankly, it was a depressing place to visit. The team was overworked and frustrated. They were never releasing any code to production, and there were no design meetings with anyone.

Finally, we heard that the redesigned applications were going to be ready to launch soon! This was good news, as the legacy applications were not easy to support.

The first thing I remember about the database deployments for the V1 Team's new application is that... well, they didn't actually deploy. The V1 Team had been stuck in a prototype environment for so long that quite a bit of work was needed to bring the codebase into a deployable state for pre-production and production domains.

The second thing I remember is looking at one example table in one of the V1 Team's new databases, and finding that the clustered primary key was defined as being the combination of four uniqueidentifier columns (GUIDs).

I'm not the kind of DBA who sees a uniqueidentifier column as being universally bad or a sign of doom. However, keeping clustering keys relatively narrow is generally a good practice for scalability in SQL Server-- and a 64 byte surrogate key is a particularly bad sign. But it was too late to make any changes: the poor V1 Team was desperate to get anything in front of a customer at this point.

It was a tricky and painful struggle for both the V1 Team and the Operations teams to get that code into production and to begin supporting it. Performance wasn't great, and customer response was lukewarm at best-- after all, they'd been told the whole project was about scalability.

Nobody declared victory, least of all the customers.

Scoping and architecture discussions, I learned, are critical for any project.

Tell us your story

The contest closes March 20, and you are welcome to enter more than once.

Kendra Little from SQLServerCentral.com

Join the debate, and respond to today's editorial on the forums

ADVERTISEMENT
SQL Provision

SQL Provision: Create, protect, & manage SQL Server database copies for compliant DevOps

With SQL Provisions virtual cloning technology, databases can be created in seconds using just 1MB of storage, and sensitive data can be anonymized or replaced with realistic data to ensure it is protected as it moves between environments. Download your free trial

Webinar

Don’t just think DevOps. Think Compliant Database DevOps!

Wednesday 20 March, 15.00-16.00 GMT / 10.00-11.00 CDT - How can the promise of releasing changes to the database faster and easier be balanced with the need to keep data safe and remain compliant with legislation? Join us to find out!
Register now

Featured Contents

 

Migrating SQL Server Reporting Services

Blake McNeill from SQLServerCentral.com

Learn how to migrate SSRS by following a walk through of migrating SSRS 2014 to SSRS 2016. More »


 

What are Inline Indexes?

Additional Articles from SimpleTalk

New releases of SQL Server arrive at a quick pace, and it's difficult to keep up with the many features introduced in each version. In this article, Phil Factor reviews a feature you may have missed, inline indexes. He covers the syntax and the many ways they can be used and then performs some performance tests to see if they can make a difference with table variables. More »


 

Take the 2019 State of SQL Server Monitoring Survey

Now in its second year, the State of SQL Server Monitoring survey is open. If your organization uses SQL Server, we’d love to hear how you are currently monitoring your servers. Tell us your opinions by completing our survey for a chance to win a $250 Amazon voucher. More »


 

From the SQLServerCentral Blogs - SSMS tip: Splitting the same query window

Arthur Daniels from SQLServerCentral Blogs

This is a trick I use in SQL Server Management Studio at least once a week. Today’s scripts will be screenshots... More »


 

From the SQLServerCentral Blogs - The login is from an untrusted domain and cannot be used with Windows authentication

peter.skoglund from SQLServerCentral Blogs

SSPI handshake failed with error code 0x8009030c, state 14 while establishing a connection with integrated security; the connection has been... More »

Question of the Day

Today's Question (by Steve Jones):

I have installed the SQL Server 2017 database engine and the command line tools on my Ubuntu instance. I want to connect to my instance using sqlcmd, but I can't remember the parameters. How do I get a list of possible parameters from an SSH shell session?

Think you know the answer? Click here, and find out if you are right.


We keep track of your score to give you bragging rights against your peers.
This question is worth 1 point in this category: SQLCMD.

We'd love to give you credit for your own question and answer.
To submit a QOTD, simply log in to the Contribution Center.

Yesterday's Question of the Day

Yesterday's Question (by Steve Jones):

I discovered that someone created 32 files for tempdb on an instance. I'd like to remove some of these files. How can I remove a file named tempdb32?

Answer: ALTER DATABASE tempdb REMOVE FILE tempdb32

Explanation:

The ALTER DATABASE command is used to remove files. There is a REMOVE FILE option.

Note, if the file is not empty, you cannot remove it.

Ref: ALTER DATABASE File and Filegroup Options - click here


» Discuss this question and answer on the forums

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.

SQL Server 2016 : SQL Server 2016 - Administration

Always on - We have a Always on setup on our server. We use the AG name to connect via SSMS. but its...

DBA Job interview question thoughts - Just out of curiosity how big a whiff would you consider not knowing the difference between a clustered and non-clustered...


SQL Server 2016 : SQL Server 2016 - Development and T-SQL

Subqueries examples - Someone new to SQL asked me to show him a dozen of subqueries samples for Northwind or AdventureWorks databases. Does...


SQL Server 2014 : Administration - SQL Server 2014

Loading CSV file into Multiple tables - Hi, I have to load the data from .csv file into few sql server tables which have referential integrity also. What's the...


SQL Server 2012 : SQL 2012 - General

Recreating sane index not improve the performance - I have five indexes and i dropped the indexes one by one which is not used.When i dropped the one...

SP set "With Encryption" issues - For all my SQL functions (from SQL server 2005--2017), I created them "WITH ENCRYPTION" as the following sample. I have...


SQL Server 2012 : SQL Server 2012 - T-SQL

How to return a value if an INNER JOIN isn't satisfied? - Hi, I have Historical T-SQL query as below: SELECT

trimming SSNs - I have thousands of social security numbers I need to trim to leave only the last 4 digits... it is...


SQL Server 2008 : T-SQL (SS2K8)

Proper way of querying hierarchical data - Hi all, This one's gonna be a bit tough to properly explain, so if there's anything I can provide to help...


SQL Server 2008 : SQL Server 2008 High Availability

Restore the .Trn files from the directory folder - Hello Experts ! with the help of below topic https://www.sqlservercentral.com/Forums/Topic1817731-3412-1.aspx I tired to some modification the below script which is posted having...


Reporting Services : Reporting Services 2005 Development

Freeze Panes in Reports - I have searches and search for this seemily easy report formatting. How can you freeze columns like in excel on...


Programming : Powershell

skip function if completed successfully - I have a function where I'm executing in succession a list of sql queries\updates. The function has try\catch so if...

This email has been sent to [email protected]. To be removed from this list, please click here.
If you have any problems leaving the list, please contact the [email protected].
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.
This transmission is ©2018 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
Contact: [email protected]