| A community of more than 1,600,000 database professionals and growing |
| | The RDBMS is Often the Right Tool I've spent most of my career, actually most of my life, working with relational database systems. I tend to agree with this piece on NoSQL systems being the wrong tool for many applications. I do think that's the case, though to be fair, I haven't done anywhere near the amount of work on key-value stores, document databases, graph databases, etc. as I have on relational systems. I admit I'm biased, but I think the author is as well. He works at MemSQL and used to work on SQL Server. The piece notes that relational databases didn't deal well with certain problem domains and various NoSQL classes databases evolved to handle the challenges. The good things about this is that relational databases were forced to grow and adapt, incorporating new features and functions. I do truly wonder if that is the reason we've seen rapid changes in SQL Server, both in capabilities and the pace of new releases. Many of the non-relational systems are built to incorporate transactions, but usually within a very limited range. For example, many document databases only allow ACID compliant transactions within a document, not across documents. The same might be true in graph structures. Many of us working with relational systems know there are often a decent number of queries that need transactional consistency across entities, and sometimes across different databases. Our applications demand this, and while it might be overkill at times, it's a capability that is definitely needed. There is also a discussion of schema-less features. I do understand the attraction for application developers. Adding or changing the way data is stored is much easier when there isn't a set schema for writes. This truly does make development easier. What it doesn't do, however, is remove the technical debt of having a schema. Instead, this debt is pushed to the reader, and often, means the application must maintain the ability to apply some schema for reads to make sense of the data. Does that mean everything needs a hard, strongly defined schema? No, but I think it means we need some schema. Ultimately I think that there are problem domains best solved by different platforms. In most cases, I'd argue a relational data store is the better platform, but I am certainly willing to entertain the discussion of where a graph, document, or other data platform may work better. Just be sure you argue for the problem being solved. Most of us aren't operating at the Google/Facebook/Spotify/Netflix scale, and we have different problems to solve. We need something that works well for our problem, not the one another organization is facing. Steve Jones from SQLServerCentral.comJoin the debate, and respond to today's editorial on the forums |
| The Voice of the DBA Podcast Listen to the MP3 Audio ( 3.9MB) podcast or subscribe to the feed at iTunes and Libsyn. The Voice of the DBA podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. | |
|
|
| ADVERTISEMENT | | 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 |
| |
|
|
| | | Andy Leonard from SQLServerCentral.com Part four of this stairway series examines the process of updating the data in an existing table in a load. MVP Andy Leonard talks about the way in which packages can handle changes in a repeatable fashion. More » |
| Additional Articles from Redgate Dynamic Management Views (DMVs) are a significant and valuable addition to the DBA's troubleshooting armory, laying bare previously unavailable information regarding the under-the-covers activity of your database sessions and transactions. More » |
| Additional Articles from MSSQLTips.com In this tip we look at a PowerShell script that can be used to compare actual files that exist against a list of files that should exist for a project to identify any missing files. More » |
| SQL Monitor provides a full suite of monitoring specific to Azure SQL Database and SQL Elastic Pools. You can therefore use it to monitor all your databases, regardless of whether they are on local physical servers or virtual machines, or in the Azure cloud. More » |
| Arthur Daniels from SQLServerCentral Blogs Here’s my take on partitioning. I’ll be focusing on getting queries to perform on partitioned tables, and not on partition... More » |
| Grant Fritchey from SQLServerCentral Blogs What happens in Query Store when the database itself is READ_ONLY? Yeah, I don’t know. Let’s find out. READ_ONLY The... More » |
|
|
| | Today's Question (by Steve Jones): I have a simple data frame with data on the all time Home Run hitters in Majr League Baseball. > HR.hitters rank players Hr yrs.played 1 1 Barry Bonds 762 22 2 2 Hank Aaron 755 23 3 3 Babe Ruth 714 22 4 4 Alex Rodriguez 696 22 5 5 Willie Mays 660 22 6 6 Ken Griffey, Jr. 630 17 7 7 Albert Pujols 619 22 8 8 Jim Thome 612 22 9 9 Sammy Sosa 609 18 10 10 Frank Robinson 586 21 After the end of the last baseball season, I realized that the value for Albert Pujols is incorrect. He ended the season with 633 home runs. What code will update his total? |
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: R Language. We'd love to give you credit for your own question and answer. To submit a QOTD, simply log in to the Contribution Center. |
|
|
| |
ADVERTISEMENT | Pro Power BI Desktop This book shows how to deliver eye-catching Business Intelligence with Microsoft Power BI Desktop. You can now take data from virtually any source and use it to produce stunning dashboards and compelling reports that will seize your audience’s attention. Slice and dice the data with remarkable ease then add metrics and KPIs to project the insights that create your competitive advantage. | | |
|
|
|
|
|
| Yesterday's Question of the Day |
| Yesterday's Question (by Steve Jones): I want to create a memory-optimized table with an identity value. I want to use this code: CREATE TABLE SensorData ( SensorDataKey INT IDENTITY(X,Y) CONSTRAINT SensorDataPK PRIMARY KEY , SensorKey int , ReadingTime datetime2 , SensorValue int ) What values can I use for x and y? Answer: Any integer for X, and any integer for Y Explanation: This is a normal identity function. While initial documentation for SQL 2017 noted that only 1 and 1 were allowed, this is not the case. Ref: CREATE TABLE - click here » Discuss this question and answer on the forums |
|
|
| | Junior Galvão - MVP from SQLServerCentral.com Through this script, you will have the ability to know at run time, how Microsoft SQL Server performs data page locks or even rows from a table. To simulate this behavior, the code shared in this script makes use of a small environment composed of the paglocktable table, this being the storage source of the small portion of data. Your order of execution is defined as follows: 1- Creation of table paglocktable; 2- Inserting a small portion of data; 3- Query the data entered in the table; 4- Simulation and use of the Paglock table hint, through the use of a new transaction defined at run time through the Begin transaction command, setting the TPL name for the transaction block; 5- Opening a new Query, to execute the Select command while the previously created TPL transaction is running; 6- After the 10-second processing period of the TPL transaction, Microsoft SQL Server must present the result of the data requested in step 5; 7- In parallel to the execution of steps 5 and 6, if you want to identify what is being blocked at the level of data pages or line run in another query the code blocks named: -- Identify locks at level data pages -- SELECT OBJECT_SCHEMA_NAME(ios.object_id) + '.' + OBJECT_NAME(ios.object_id) as table_name, i.name as index_name, page_lock_count, page_lock_wait_count, CAST(100. * page_lock_wait_count / NULLIF(page_lock_count,0) AS decimal(6,2)) AS page_block_pct, page_lock_wait_in_ms, CAST(1. * page_lock_wait_in_ms / NULLIF(page_lock_wait_count,0) AS decimal(12,2)) AS page_avg_lock_wait_ms FROM sys.dm_db_index_operational_stats (DB_ID(), NULL, NULL, NULL) ios INNER JOIN sys.indexes i ON i.object_id = ios.object_id AND i.index_id = ios.index_id WHERE OBJECTPROPERTY(ios.object_id,'IsUserTable') = 1 ORDER BY row_lock_wait_count + page_lock_wait_count DESC, row_lock_count + page_lock_count DESC Go Or -- Identify locks at line level -- SELECT OBJECT_SCHEMA_NAME(ios.object_id) + '.' + OBJECT_NAME(ios.object_id) as table_name, i.name as index_name, row_lock_count, row_lock_wait_count, CAST(1. * row_lock_wait_in_ms / NULLIF(row_lock_wait_count,0) AS decimal(12,2)) AS row_avg_lock_wait_ms FROM sys.dm_db_index_operational_stats (DB_ID(), NULL, NULL, NULL) ios INNER JOIN sys.indexes i ON i.object_id = ios.object_id AND i.index_id = ios.index_id WHERE OBJECTPROPERTY(ios.object_id,'IsUserTable') = 1 ORDER BY row_lock_wait_count + row_lock_wait_count DESC, row_lock_count + row_lock_count DESC Go 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. Row Level Security - Based on Role Membership - Hi Guys, I am experimenting with Row Level Security and getting a bit stuck. All the examples I've found demonstrate the same... Encrypting All Procedures in a Database - Dear All, I have a requirement where i need to encrypt all my stored procedures in a existing database. Do we... WHERE Clause exclusions, best practices. - Hello, I was just wondering if anyone has a good idea on how to implement a set of filters that we... Six months data sql - Hi, I have a variable that shows the date as month and year only. It has data format like 2018-11. I... High Availabiltiy Role Change Alerting - I've created a SQL Alert to email an operator when the High Availability Group fails over. I've set it to... TLS 1.0 with SQL Server 2016 SP2 CU5 - Hello Does any body know if TLS 1.0 is still support on SQL 2016 SP2 CU5? How to use STUFF and FOR XML PATH to get a list of column names IN ORDER BY COLUMN_ID - I am writing some fairly complicated dynamic SQL for a stored procedure that needs to be multi-purpose. As such, I... Cannot initialize the data source object of OLE DB provider "Microsoft.Ace.OLEDB.12.0" for linked server "(null)" ERROR - I have this code: insert into OPENROWSET('Microsoft.Ace.OLEDB.12.0', 'Excel 12.0;Database=D:\Data\testing.xlsx;', 'SELECT * FROM ') select * from sample..fams and I get the following error: Verify Read Only Routing using Profiler - How can I verify the readonly routing is working fine with Profiler? I connected to listener using Application Intent=Read Only and... Compare Lists - Hi Everyone, Reaching out for some help solving a SQL problem. I have a list of active servers and a list... Extended Events to capture deadlocks - I created an extended event to capture the deadlock that occurs in the database . I selected the following -- Events and... Login Failed for user Domain\User - I have a .net web app on development machine. It is WIndows 10 with .Net Framework 4.7, SQL Server 2012... How to round a value in a varchar column ? - Dear Forum, I have a strange requirement to round a value in a varchar column in MS SQL*Server 2012. I know... Query Question - I have a table that contains multiple fields: Diagnosis1 Diagnosis2 Diagnosis3 Diagnosis4 Diagnosis5 Diagnosis6 Diagnosis7 Diagnosis8 Diagnosis9 each field only contain codes, the descriptions are in another table. What I... mapping back - i have table as below: country code australia 55555 australia 55555 australia checklater ukraine 33333 ukraine checklater ukraine checklater ukraine 33333 america 22222 i would like to map back the same country and replace the code... How to insert result of Store Procedure into sql table - ALTER PROCEDURE . AS BEGIN SET NOCOUNT ON; ;WITH Dates (ReportingDate) AS ( SELECT CONVERT(date, '2018-11-26 00:00:00.000', 120) AS ReportingDate UNION ALL SELECT DATEADD(day, 1, d.ReportingDate) FROM... Query all data using a parameter - Hi, My report has a drop down selection parameter with the following dataset SELECT .order_no ,.Expr1 ,.status ,.alpha ,.customer ,.address1 ,.address2 Importing an XML file into a sql table - Edit to make things more understandable, I wish to import my XML file into an sql table. The XML has a... SSIS 2017 connection to Access .accdb file - Sorry, I'm an SSIS noob. I've connected to .MDB files in the past using the Jet 4.0 connector, and it... Please move the "CLR Integration and Programming" forum to the "Programming" group - Hello. If at all possible, please move the "CLR Integration and Programming" forum to be in the "Programming" area / group. It... |
|
| 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] |
|
|