SQLServerCentral - www.sqlservercentral.com

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

Featured Contents

Featured Script

The Voice of the DBA

Serverless Code

I think the Cloud (IaaS, PaaS, Saas) is very cool. It's changed quite a few things in business, and in many ways, it continues to democratize lots of services and opportunities that used to require large investments. Now more companies and take advantage of the capabilities that they wouldn't have been able to in previous years. In some sense, this is the same as hypervisors allowing many of us to simulate and build large labs of multiple machines for a fraction of the cost that would have been required 20 years ago.

The cloud isn't for everyone, and certainly not for every application, but it can be very useful. I find more and more companies making a move, at least in part, to some cloud service. Often it's AWS, Azure, or Google Engine, but there are plenty of other choices that people use. Whether it's a small PoC, a lift and shift, or complete change to a cloud service, I bet most companies are doing something in the cloud. 

And getting surprised at times. There are security issues, and at times, downtime disruptions, but the number one issue I find from most companies is the cost. Yes, the cloud can be inexpensive to get started with, but the costs can quickly grow, often in surprising ways. I ran across a piece on the hidden costs of serverless computing, which is one of the most interesting and exciting ways of building applications. It's also one of the more complex from a pricing model.

The article looks at the various hard costs, many of which may be difficult to estimate. Do many of really know how often someone might trigger some function in an application? If we string together a whole series of these in a serverless fashion, can we be sure of the execution flow, much less count of calls? This doesn't even begin to discuss the development labor side of writing, tracking, understanding how these fit together, and more. I can imagine a situation where serverless functions are never deleted and new ones added because of the fear of breaking some part of an application. Just like applications tend to grow and developers fear touching old code, I wouldn't be surprised to see that happening here.

Since most of these functions will need to touch data at some point, the data store will come into play. Whether this is an RDBMS, like SQL Server, or a NoSQL store, like CosmosDB, certainly we'll find linkages and dependencies that we manage. Perhaps we'll get stuck maintaining APIs in our data stores, and using de-normalized structures to keep multiple copies of data in sync. I wouldn't be surprised to see data transfer costs become an unexpectedly large cost over time, with poorly architected applications, thrown together to meet one tiny request at a time.

I like serverless computing, and for small Proof of Concept (PoC) or IFTT like data flows, simple, narrowly focused applications, this likely works well. Replacing any large scale, complex workflow line of business app? I shudder to think, though the cloud vendors might be thrilled if you try.

Steve Jones from SQLServerCentral.com

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

SQL Prompt

Write, format, analyze, and refactor SQL fast with SQL Prompt

Writing SQL is 50% faster with SQL Prompt. Your SQL code can be formatted just the way you like it, you can create and share snippets with your team, and with code analysis you get suggestions to improve your SQL as you type. Download your free trial

SQL Source Control

How to track every change to your SQL Server database

See who’s changing your database, alongside affected objects, date, time, and reason for the change with SQL Source Control. Get a full change history in your source control system. Learn more

Featured Contents


Ensuring Each Client has a Full Set of Key-Value Pairs

Steve Jones from SQLServerCentral.com

In this piece, we find out about a business issue that can occur when using key value pairs in your database to describe information about other entities. More »


Automatic Query Performance Tuning in SQL Server Database

Additional Articles from Database Journal

In this article Anoop Kumar discusses Automatic Tuning, a new database feature that helps improve SQL Server query performance automatically. More »


Building Better Test Data with SQL Provision

Steve Jones discusses building Better Test Data with SQL Provision More »


From the SQLServerCentral Blogs - Azure Data Lake Store Gen2

James Serra from SQLServerCentral Blogs

Big news!  The next generation of Azure Data Lake Store (ADLS) has arrived.  See the official announcement. In short, ADLS Gen2 is... More »


From the SQLServerCentral Blogs - SQL Server Management Studio Tips & Tricks From Dr Greg Low

Angela Henry from SQLServerCentral Blogs

It’s been a bit slow in the US this week due to the American 4th of July holiday, but it’s... More »

Question of the Day

Today's Question (by Henrico Bekker):

When deploying SQL Database as a Service in Azure, the following system databases are created by default on the logical server:

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: Azure SQL database.

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


Extract, Transform, and Load with SQL Server Integration Services: With Microsoft SQL Server, Oracle, and IBM DB2

Readers will learn by example how to use Microsoft SQL Server 2016 Integration Services (SSIS) as they design and implement extract, transform, and load (ETL) solutions to support a business application that integrates with a data warehouse and an online Web store across a heterogeneous system. This volume describes proven methods to support common ETL needs, such as databases communicating directly with each other, using files to exchange data, or performing database operations using Web services.

Pick up your copy of this great book today at Amazon today.

Yesterday's Question of the Day

Yesterday's Question (by Steve Jones):

I need to split a string into separate items. I have a string and some code that I am experimenting with. I don't want to 
DECLARE @cars VARCHAR(200) = 'Porsche, Ferrari, Bentley, Jaguar,Range Rover'
 FROM STRING_SPLIT(@cars, ', ')
What happens?

Answer: I receive an error

The STRING_SPLIT() function takes two parameters, a string and a character expression to split the string on. However, the character expression can only be a char(1), varchar(1), nchar(1) or nvarchar(1). Multiple characters are not allowed.
Ref: STRING_SPLIT()  - click here

» Discuss this question and answer on the forums

Featured Script

User Stored Procedure for Backup of user databases

Junior Galvão - MVP from SQLServerCentral.com

This script creates a stored Procedure for the user named P_BackupAllUsersDatabases.
Using the Select command in conjunction with the existing DBId and Name columns in the Sys.SysDatabase system view is creating a column named command, which is responsible for storing the instructions later used by the Backup Database command.
The result of this Select command is stored in a temporary table called #CommandBackupDatabases, which will later be using within the While execution block.
In this column named Command is specified a default storage location of the backup files defined with the corresponding backup name of concatenated with the. bak extension.
The Master, MSDB, Model, and TempDB system databases are not involved in this backup procedure.
The While execution block is responsible for performing the Backup command set for each database through the command column and its assigned value to a variable named @Command executed through the Exec() command.
The While execution block will run until all of the identified user databases have their backup process run, in the event that any error message stored procedure appears on screen in which line or part of code happened due Error.
Its execution form is quite simple, just use the Exec command accompanied by the name of the User stored Procedure P_BackupAllUsersDatabases, as shown in the example below:
Exec P_BackupAllUsersDatabases

More »

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 2017 : SQL Server 2017 - Administration

SQL Server Dependencies - Hi All, Today we encountered a issue with SQL Server services. After upgrading TLS 1.0 to TLS 1.2, SQL Server Services are...

SQL 2017 FCI with File Share Witness - permissions? - I have Win2016, SQL 2017 FCI with 2 node non shared storage using Always On AGs.  I have a separate...

SQL Server 2017 : SQL Server 2017 - Development

Data compression - Dear all, We have a BI solution In this solution we have stading area, a data mart and a cube. We are thinnking in...

Need to display a column with deleted overlapping dates - I want to get rid of the following overlapping records from the table and display the below output. Also, I...

SQL Server 2016 : SQL Server 2016 - Administration

CmdExec to delete files not working - I'm using Ola Hallengren's maintenance solution with this command to cleanup old output files. However, it is not working. It...

error sql server - Hello everyone Who can help me about this error please Error generation on DB Side : System.Data.SqlClient.SqlException: Table error: table 'TLOG.ITEMS' (ID 494624805). ...

SSMS 17.6 connecting so SSIS 2016 - I am getting an error when trying to Integration Services using ssms 17.6 (The specified service does not exist as...

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

Stored Procedure - I have an existing business database with tables and was wondering if someone could help me create a stored procedure.  The...

Expression Builder - Default to 2 Saturdays ago - I'm building a SSIS pkg that runs every Monday; it picks up a .csv file from a share which gets...

Accurate Estimations, But Hash Match Aggregate Spilling to TempDB - Hi, I'm on SQL Server 2016 Enterprise, V13.0.5026.0.  I have a straightforward query that runs on a fact table with a...

SQL Server 2012 : SQL Server 2012 - T-SQL

Query help for inserting data - Hi I am writing a procedure to move data from one table to another along with some additional fields. here I...

How to use functions to update columns? - I am a beginner with using functions, I need to update only one column (which is the FIRST null it...

XML nodes help - The XML in the attached file is the XMLTEXT field in my CDRecords table. What code would i use to cross...

SQL Server 2008 : SQL Server 2008 - General

how to get sum of each row and column - I used this code below to query and count the test result of OK,NG and RR. select station_no, count(case when...

Can I run a VBS script in a scheduled SQL Job? - Hi I have a vbs script that runs fine in the command line(It uses CuteFTP to upload a file ) I tried...

SQL Server 2008 : T-SQL (SS2K8)

How to Use xp_dirtree to List All Files in a Folder - hello to everyone, i use the following code to list a filenames in a temporary table.the code runs well when i...

Presenting rows of data horizontally - I have two fields in a SQL Server 2008 view. ID and SubID. There are up to 24 subIDs for...

Data Warehousing : Analysis Services

Measure Calculation - Here some background: I am using vs2010 multidimensional cube solution. My fact table, FactProductionClaims, consists of contract keys and the claims keys...

SQL Server 2005 : CLR Integration and Programming.

How to use bcp utility as process in a CLR procedure ? - I have an CLR project where I use the next procedure : public static int processCMD(string fileName, string arguments) { try { System.Diagnostics.Process...

Microsoft Access : Microsoft Access

Database Audit -

This email has been sent to {user_email}. To be removed from this list, please click here.
If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com.
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: webmaster@sqlservercentral.com