Parallel Processing of SSAS partitions - sql-server-2012

We are currently using SQL Server 2012 Standard Edition. SSAS does not support the processing of multiple partitions concurrently. SQL Server Enterprise Edition does support this.
I have two questions:
1. What is the term for the ability of SSAS to process multiple partitions at once?
2. Does the SQL Server BI Edition support this functionality.
Thanks in advance.

Parallel partition processing for Multidimensional models is available in SQL 2012 Analysis Services BI edition. I have a client on that version and editions and can confirm it does process in parallel.

Related

Is it possible to execute query to mirror database? (MS SQL Server 2012)

Is it possible to execute query to mirror database? Without stopping mirroring.
In database mirroring you can query the mirrored database only if you create snapshots of that database. In SQL Server 2012, database snapshot is an Enterprise feature.
https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2012/cc645993(v%3dsql.110)
If you run queries on the snapshot you'll lave to license it, and are a few things to consider, check link below.
https://learn.microsoft.com/en-us/sql/database-engine/database-mirroring/database-mirroring-and-database-snapshots-sql-server?view=sql-server-ver15
If you're willing to license Enterprise, you'd be better of implementing AlywasOn Availability Groups where you can have a readable secondary.

Data Compression in SQL Server 2017 Standard Edition

I have set up a SQL Server 2017 Standard Edition instance and I am experimenting with data compression. One thing I noticed is that the SQL Server uses only one core for compression, which on a large table (>300GB) takes a very long time to complete. Incidentally, a SQL 2014 Dev Edition uses all available cores for the same operation and takes a fraction of the time.
Is this expected behavior?
If yes, is it limited to when the table is compressed the first time i.e. via ALTER TABLE?
Will SQL Server SE only ever use 1 core when inserting and/or extracting data from a compressed table?
(IMHO) This is expected behavior and limitation of Standard Edition.
While some of the Enterprise features been unlocked in SQL Server 2016 SP1, Microsoft intentionally keeps plenty optimizations like multi-core maintenance tasks only in Enterprise edition. Because it simply costs 4x more than Standard.
So companies that really need such grade of functionality have to buy premium offering.
According to this document:
Enterprise edition:
The premium offering, SQL Server Enterprise edition delivers
comprehensive high-end datacenter capabilities with blazing-fast
performance, unlimited virtualization, and end-to-end business
intelligence - enabling high service levels for mission-critical
workloads and end-user access to data insights.
Standard edition:
SQL Server Standard edition delivers basic data management and
business intelligence database for departments and small organizations
to run their applications and supports common development tools for
on-premise and cloud - enabling effective database management with
minimal IT resources.
Similar limitations of Standard Edition:
single core index rebuilt
max 25% of RAM can be used by columnstore
etc etc

Migrate on-prem SQL Server database to Azure SQL database

We're in the process of a server migration from an on-prem server (Win2008R2) to Azure PaaS.
To move the DBs, we used the Microsoft Data Migration Assistant (DMA) tool, which worked great and we can connect to the migrated Azure DB via SQL Server Management Studio.
Considering:
Made quite a few changes to the migrated Azure DB (tables, stored procedures, indexes) to work with the apps in Azure
Combined multiple on-prem DBs into one DB in Azure via DMA to save costs
On-prem DB is continually being modified by insert/update operations (multiple tables) during the migration process
Question: what is the best and fastest way to migrate data (all vs missing/updated) considering the above?
I would recommend you to migrate first only the schema of your on-premises databases to Azure SQL Databases and then let Azure SQL Data Sync to migrate the data to Azure and keep it updated on Azure SQL Database.
My suggestion to start with an empty schema on the Azure SQL Database side is because when SQL data Sync finds data on-premises and on Azure it start comparing both databases and that consumes a lot of resources.
On the initial sync SQL Data Sync may consume a lot of resources on the on-premises database server even when having an empty schema on the Azure side, for that you can use SQL Server Resource Governor to cap the CPU used by the data sync sessions in your on premises SQL Server, and this way avoid big performance impact possibly affecting database users.
When you are ready, you can switch your users (gradually or not if SQL Data Sync is on bi-directional mode) to Azure. Once your users have been migrated, you can then remove the member database (the on-premises database) from the SQL Data Sync configuration and stop SQL Data Sync operation.
I disagree with all the answers here.
If you are running on Win2008R2 there is a high chance that you are on an old SQL Server (2008? 2012?) which are both deprecated and unsuitable for Azure SQL Database. And probably the application is also old and not suitable for the Cloud in general. I suggest you a good testing phase.
Here my to do list:
Upgrade SQL Server to SQL Server 2016 on-prem and test if all your queries are still running correctly
Test how ready is your SQL Server to go to Azure SQL Database through Microsoft Data Migration Assistant (DMA) tool or the new Azure SQL Migration extension for Azure Data Studio (came out his month).
Don even think for a second that merging databases will reduce your overall costs. Decide if going multi-tenant or single-tanant not because of the price of the database.
Plan for hours of downtime based on the size of the migration. Don't migrate while your database is modified. Expect downtime. The best way is to take a backup of the day before and then resume the logs.
and test like crazy. This is not gonna be easy because the app is old.
Good luck.
Visual Studio also has a great tool for comparing both schema and data between two databases on different servers.
It can then update the target database with any changes after which you can switch over to use the Azure DB.
This method would require downtime of around 5-30 minutes depending on amount of data, but that might be acceptible depending on your requirements.

How can I schedule a SQL job in Microsoft Azure SQL Database?

I have one SQL Agent maintenance job which checks the index fragmentation within a database and rebuilds indexes if required.
This is running well in my test server (Microsoft Sql Server 2012). But my production server is in Azure. Now I want to schedule that job to Azure.
SQL Agent does not exist in Azure SQL Database so how can I schedule a SQL job in Azure DB?
Since this question was first asked, there is now another alternative to handle this problem:
Azure Functions
Here are a couple of examples that could easily be modified to call a stored procedure that rebuilds your indexes
Create a function in Azure that is triggered by a timer
Use Azure Functions to connect to an Azure SQL Database
Also see
How to maintain Azure SQL Indexes and Statistics - this page has an example stored procedure for rebuilding your indexes that you can download.
Reorganize and Rebuild Indexes
A few things to keep in mind with Azure functions
They are built on top of Azure Web Jobs SDK and offer additional functionality
There are two different pricing models:
App Service plan (attach it to an existing plan)
Predictable cost model
It puts extra load on the same VM used by your web site
Consumption plan
You get some free processing every month
The default maximum run time is 5 minutes to prevent billing problems, but it can be changed via the host.json file.
Edit September 5, 2021 to add additional information
It should be noted that if you need SQL Agent, you have another option now. I would suggest reading up on Azure SQL Managed Instances. You can see a comparison of Azure SQL to Azure SQL Managed instance here in the Microsoft Documentation. With Azure SQL Managed Instances, your transition to the cloud could be a lot simpler since a lot of the on-premise features you are used to are already there (including SQL Server Agent, DB Mail, etc.).
This feature has been rejected by Microsoft (link no longer available).
To quote their response:
Today in Azure there are several alternatives,
SQL Database Elastic Jobs
https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-jobs-overview
The Azure job scheduler
http://www.windowsazure.com/en-us/services/scheduler/
The new
preview of Azure Automation
http://azure.microsoft.com/en-us/services/automation/.
SQL Server
in a VM
Option 1 requires an additional dedicated cloud service, which increases cost. Option 2 is free (I think) as long as you don't run more than once per hour.
Azure SQL does not support sql jobs. From documentation:
Microsoft Azure SQL Database does not support SQL Server Agent or
jobs. You can, however, run SQL Server Agent on your on-premise SQL
Server and connect to Microsoft Azure SQL Database.
WebJobs: If you have a website you can create webjob and run it on schedule. See more here
Other alternatives - Scheduling job on SQL Azure
Another option is rovergo, a service that allows you to schedule sql jobs with a cron expression. This is nice because you don't have to create a web job or azure function. You can simply schedule a sql script.
(I'm a developer on rovergo)
You can use Azure automation to schedule jobs on an Azure-DB like the on premise SQL Agent.
See https://azure.microsoft.com/nl-nl/blog/azure-automation-your-sql-agent-in-the-cloud/ for more information.
Available for a couple of years now, Elastic Jobs for azure db...
docs:
https://learn.microsoft.com/en-us/azure/azure-sql/database/job-automation-overview?view=azuresql
tutorial:
https://www.youtube.com/watch?v=JIMgqkXZFOQ
Currently seems to use the 2017 version of the sqlagent sp (or a close approximation), but elastic links are now already pointing to SQL2022 preview which contains a newer version of the agent sps

Third Party Analysis Service Equivalent Component for SQL Server Express

As far as I know, the SQL Server Analysis Service (SSAS) is NOT supported by SQL Server Express Edition (2005/2008/2008R2). Does anyone know if there is any third party SSAS equivalent component / service / system (free or commercial) that does the same job?
Many thanks.
You've several Olap servers in the market, check the wikipage : OLAP Server comparison
Amongs them you've icCube as a In-Memory OLAP server with a community edition. If you ever wonder about what is going on behind an MDX query do not miss the MDX Debugger and Profiler
Depends on your requirements: if you need a space to store your multidimensional data you could use offline cubes. This is useful to release information to your final clients through MDX Queries or the pivot table component.