Row Level Security enhancements in 91SP3

Slides:



Advertisements
Similar presentations
Visualize Success 2011 Tony Gunter Professional Services Visual South, Inc. Advanced Browse and Excel Interface.
Advertisements

Using the Set Operators
LCT2506 Internet 2 Further SQL Stored Procedures.
1 Foundations of Software Design Lecture 27: Java Database Programming Marti Hearst Fall 2002.
SQL for Data Retrieval. Running Example IST2102 Data Preparation Login to SQL server using your account Download three SQL script files from wiki page.
MS-Word XP Lesson 8. Inserting Column to Table 1.Select column (click on top margin) 2.Click on table menu 3.Select insert sub menu and click on columns.
SQL Server Integration Services (SSIS) Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server (MVP) Microsoft Certified Technology Specialist.
10-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
© FPT Software Code Review with VS © FPT Software Agenda What is Code review? Run Code analysis in VS 2012 Configuring Code Analysis rule set.
Chapter 6: Foundations of Business Intelligence - Databases and Information Management Dr. Andrew P. Ciganek, Ph.D.
1 By: Nour Hilal. Microsoft Access is a database software where data is stored in one or more Tables. A Database is a group of related Tables. Access.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Module 5 Planning for SQL Server® 2008 R2 Indexing.
DATABASE TRANSACTION. Transaction It is a logical unit of work that must succeed or fail in its entirety. A transaction is an atomic operation which may.
Greg Janée chit-chat with CS database folks 10/26/01 Gazetteer database 4.5 million items, each having: –1+ names fair to good discriminator –1 geospatial.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
SQL for Data Retrieval. Running Example IST2102 Data Preparation Login to SQL server using your account Select your database – Your database name is.
® Microsoft Access 2010 Tutorial 10 Automating Tasks with Macros.
While you are waiting for class to start... (1) Login to SQL Server 2012 Management Studio (2) Execute the file called “SQLLab3.sql”. It is located on.
March 9, 2009 Maze Solving GUI. March 9, 2009 MVC Model View Controller –Model is the application with no interfaces –View consists of graphical interfaces.
Copyright © 2004, Oracle. All rights reserved. Using the Set Operators.
Plant Engineering Workbench 5.2 SP1 New Features.
1 Chapter 13 Parallel SQL. 2 Understanding Parallel SQL Enables a SQL statement to be: – Split into multiple threads – Each thread processed simultaneously.
SqlExam1Review.ppt EXAM - 1. SQL stands for -- Structured Query Language Putting a manual database on a computer ensures? Data is more current Data is.
Databases and ADO.NET Programming Right from the Start with Visual Basic.NET 1/e 11.
Query Processing – Query Trees. Evaluation of SQL Conceptual order of evaluation – Cartesian product of all tables in from clause – Rows not satisfying.
Session 1 Module 1: Introduction to Data Integrity
A Guide to SQL, Eighth Edition Chapter Six Updating Data.
1 Schema for Student Registration System Student Student (Id, Name, Addr, Status) Professor Professor (Id, Name, DeptId) Course Course (DeptId, CrsCode,
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
2.3 solving multi-step equations. Review combining like terms Term-- the individual item(s) being added or subtracted. Example: 3x + 5x Example: 5y –
1 BCS 4 th Semester. Step 1: Download SQL Server 2005 Express Edition Version Feature SQL Server 2005 Express Edition SP1 SQL Server 2005 Express Edition.
Wes Preston DEV 202. Audience: Info Workers, Dev A deeper dive into use-cases where client-side rendering (CSR) and SharePoint’s JS Link property can.
Structured Query Language SQL-II IST 210 Organization of Data IST2101.
IFS180 Intro. to Data Management Chapter 10 - Unions.
Data Integrity & Indexes / Session 1/ 1 of 37 Session 1 Module 1: Introduction to Data Integrity Module 2: Introduction to Indexes.
Extending and Creating Dynamics AX OLAP Cubes
ORDER BY Clause The result of a query can be sorted in ascending or descending order using the optional ORDER BY clause. The simplest form of.
Visual Basic 2010 How to Program
Parameter Sniffing in SQL Server Stored Procedures
Practice writing SQL statements Discuss SQL UNION statement.
Tuning Transact-SQL Queries
392-"JOIN" us on DataServers Journey
Basic select statement
CS257 Query Optimization.
Data Virtualization Tutorial… Semijoin Optimization
Current outstanding balance
Data Virtualization Demoette… Parameterized Queries
CS157B Query Optimization.
Database Management  .
SQL.
(Includes setup) FAQ ON DOCUMENTS (Includes setup)
Brief description on how to navigate within this presentation (ppt)
CIS16 Application Programming with Visual Basic
Statistics: What are they and How do I use them
Transactions, Locking and Query Optimisation
MANAGING DATA RESOURCES
SQL This presentation will cover: View in database MySQL installation
Access: SQL Participation Project
Joins CSC 240 (Blum).
Access: Queries I Participation Project
Adding Multiple Logical Table Sources
Introduction To Structured Query Language (SQL)
Contents Preface I Introduction Lesson Objectives I-2
Extend Excel with Smartlist Designer
Adv. Reports & Dashboard
Shelly Cashman: Microsoft Access 2016
Tutorial 10 Automating Tasks with Macros
Lead, LAG & CTE Victor Ivantsov.
Presentation transcript:

Row Level Security enhancements in 91SP3 Ashutosh Deshpande BMC Software May 2017

Contents Background of Row Level Security Problem Statement Solution Results

Background of Row Level Security Row level security (RLS) is achieved by adding dynamic group fields on a form Submitter: field id 2 Assigned To: field id 4 Assignee Group: field id 112 Dynamic group fields: 60000-60999 Server generates SQLs if there are multiple fields via Traditional algorithm of Combined Likes (OR clauses) New algorithm (RLS_SPLIT / regex) was implemented in 9.0 SP1 with a shared configuration (Disable-New-RLS-Implementation) to turn it OFF None of these algorithms seem to solve all problems for all forms for customers consistently

Problem Statement – Customer use case The sequence of the RLS_SPLIT functions is not predictable Query 1 18:14:44.2650 */ SELECT COUNT(*) FROM T2803 WHERE (((T2803.C700010006 = N'Open/Active') OR (T2803.C700010006 = N'Deferred')) AND ((T2803.C700010002 = N'OS3:CM:Request') OR (T2803.C700010002 = N'OS3:OP:Request') OR (T2803.C700010002 = N'OS3:WO:Request')) AND EXISTS(SELECT 1 FROM(SELECT Item FROM RLS_split(T2803.C60005, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60012, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60020, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60004, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60023, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60021, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60013, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60025, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60024, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60026, ';')) privs join RLS_split('-30721;-30700;-30701;30717;-30725;30715;-30705;30711;30712;30710;7900;3004;-30720;''cloneRoger'';-30710;-30711;30707;2182;30727;30705;-30715;30702;30725;30722;30700;30701;30720;2220;30721;2189;13006;0', ';') u ON privs.Item = u.Item)) 18:14:49.4620 */ OK   Query 2 18:18:45.2460 */ SELECT COUNT(*) FROM T2803 WHERE (((T2803.C700010006 = N'Open/Active') OR (T2803.C700010006 = N'Deferred')) AND ((T2803.C700010002 = N'OS3:CM:Request') OR (T2803.C700010002 = N'OS3:OP:Request') OR (T2803.C700010002 = N'OS3:WO:Request')) AND EXISTS(SELECT 1 FROM(SELECT Item FROM RLS_split(T2803.C60025, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60021, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60013, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60004, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60020, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60005, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60026, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60023, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60012, ';') UNION ALL SELECT Item FROM RLS_split(T2803.C60024, ';')) privs join RLS_split('-30721;-30700;-30701;30717;-30725;30715;-30705;30711;30712;30710;7900;3004;-30720;''cloneRoger'';-30710;-30711;30707;2182;30727;30705;-30715;30702;30725;30722;30700;30701;30720;2220;30721;2189;13006;0', ';') u ON privs.Item = u.Item)) 18:18:45.3940 */ OK Timings                Query1                                 Query2                             Execution 1:       00:00:04.9433815              00:00:00.3160251              Execution 2:       00:00:04.6853596              00:00:00.3350252              Execution 3:       00:00:04.6563563              00:00:00.3840337         

Problem Statement Since 9.0 SP1, many customers reported issues with slowness in SQL queries that involve RLS Disabling new RLS implementation (RLS_SPLIT / regex) gave temporary relief for some customers for some forms In 9.1 SP2, default setting for “Disable-New-RLS-Implementation” was changed from “F” to “T” to fallback to traditional algorithm of Combined Likes (OR clauses) Many customers still continue to face the inconsistent performance issues in some parts of ITSM On deep dive, it is found that server generated SQLs are not consistent when there are many dynamic group fields in the form One of the algorithms fits better in some forms, but not others posing challenge to select the best setting

Solution Continue the existing shared configuration (Disable-New-RLS-Implementation) to define best suited algorithm that will give best results for most of the forms Allow configuration to override algorithm for any given form RLS_SPLIT Combined Likes (OR clauses) Generate predictable SQL queries by using sorted field ids in WHERE clauses for RLS queries Provide new shared configurations (RLS-Field-Order-RLS-Split, RLS-Field-Order-Combined-Likes) to choose between ascending or descending order of the field ids in SQLs based on algorithm Allow configuration to override order of the dynamic group fields in a form in generated SQL queries so as to get per-form consistent and predictable performance Expose these configurations as form properties via Developer Studio

Solution

Results