SQL Azure Collation - azure

If you were building a new database in SQL Azure, which collation would you use?
SQL_Latin_General_CP1_AS_AI or Latin_General_AS_AI?
Reason I ask is that the default collation on SQL Azure is SQL_Latin_General_CP1_AS_AI as described here:
https://azure.microsoft.com/en-gb/documentation/articles/sql-database-general-limitations/
BUT
If you look at the MSDN article about Collation it states,
SQL Server supports Windows collations. SQL Server also supports a
limited number (<80) of collations called SQL Server collations which
were developed before SQL Server supported Windows collations. SQL
Server collations are still supported for backward compatibility, but
should not be used for new development work. For more information
about Windows collations, see Windows Collation Name (Transact-SQL).
Taken from: https://msdn.microsoft.com/en-GB/library/ms180175.aspx
This suggests that SQL collation support is not recommended for new database development, yet that conflicts with the fact that the SQL Azure collation is SQL_Latin by default.
Appreciate people's thoughts on this.
Thanks.

For me the answer is down to what you are planning to host on the database. If the application in question requires a SQL collation then you obviously have no choice, if it doesn't then your good to go.
I don't believe there is a contradiction, the documentation states:
SQL Server also supports a limited number (<80) of collations called SQL Server collations which were developed before SQL Server supported Windows collations. SQL Server collations are still supported for backward compatibility, but should not be used for new development work.
The key part here is "still supported for backward compatibility". A number of server based applications require SQL collation and are just getting updated to remove that requirement.
In summary: It all depends on the application you are deploying. If you don't require a SQL collation then don't use one, as the documentation suggests this is just around for backward compatibility.

Related

How can I view an Azure CosmosDb using Pycharms or IntelliJ?

I can see loads of drivers, but nothing for DocumentDB.
I did try searching for an appropriate driver, but I found nothing.
My DocumentDb is in Azure, so I have a URL and primary key, but I was unable to see how to connect via Pycharm using the "Data Source from URL" option.
How can I connect my DocumentDb to Pycharm (or IntelliJ) database explorer?
Cosmos DB is not a relational database, and you cannot simply connect to it as such.
It supports several NoSQL protocol variants: DocumentDB (native document store), MongoDB API, Gremlin graph api, and Azure Table API. Not possible to connect via a relational database driver.
If a tool doesn't explicitly support one of the above-mentioned protocols, you simply won't be able to use it, and will need to work with a different tool. And which tool you choose is really up to you (tool recommendation questions are off-topic).
You can connect to CosmosDb from IntelliJ, DataGrip or other JetBrains software using a JDBC driver. JDBC drivers are software components that allow Java applications to interact with dtabases. (I think that JetBrains IDE's are all based on IntelliJ, which is Java software). I think there are probably a few JDBC drivers around that allow connections to a CosmosDb database and run SQL queries.
For a specific connection example you can look at CData who makes a collection of drivers including a JDBC driver that can be used to connect to CosmosDb from any tool that allows their JDBC driver to be used. They have instructions that are located here for using it with IntelliJ. I have been able to use the instructions located there to connect to a CosmosDb instance from JetBrains DataGrip and run queries against the database. I still have some things to work out but it does allow me to create a successful connection and run simple queries.

Use SQL Server CE with node-webkit

I need to work on an old application written with WPF and MS SQL Server Compact Edition. As a requirement the app is executed from an USB stick (where also all the data is persisted) and the same should apply for the new system.
In the new application I would like to use NoSQL db to store the data (node-sqlite3 or npm-nosql). However the records currently stored on the SQL CE database must be migrated to the new db or the same SQL CE database used again (even if I prefer to avoid this option). In the latter case, I have seen there is node-mssql as database connector, but SQL Server CE is not among the supported databases.
The current SQL CE schema is extremely simple, only 4 tables and less than 300 records in total. The application is executed locally by a single user.
Is there a way to export the SQL CE database so that I can import it into the new database? Are there better databases to be used with node-webkit other than the ones aforementioned?
The driver you're looking for is:
https://www.npmjs.com/package/ce-mssql
However - I'm afraid you'll need to fork a nodejs process from your webkit application, and feature your queries through web API - this will put you at home with Angular.

Support for Sybase UDFs in Rapid SQL 7.7

I am new to Sybase and having coded in Oracle server for so many years I wanted to pack some reusable code into a function in Sybase ASE 15.
Based on what I have found, functions or User Defined Functions (UDFs) as they called in the Sybase world is a new feature in Sybase 15 ASE. I use Embarcadero Rapid SQL 7.7 for my coding and it does not even seem to have a node for Functions (as it does for Procedures and other database objects under a database tree).
I am able to create a simple function but it does not show-up anywhere in the left hand side organizer panel of Rapid SQL. Am I missing something basic as I am new to Rapid SQL or the tool - Rapid SQL, in its current version 7.7- is not designed to support functions in Sybase as functions are new to Sybase?
Though Sybase ASE 15 supports functions if it is not visible in the tool I do not want to use it as it makes it harder for maintenance. Is Rapid SQL planning to support UDFs in Sybase in the future?
Is there a work around for using a stored procedure as a function in Sybase ASE 15?
I recommend you to use Sybase Central.
With that, check the Functions Folder under the Database and they will be there!
Rapid SQL 8.0 does indeed have support for UDF's. Visit the enbarcadero site to download the 8.0.2 version of Rapid SQL. Shoot me an email if you have any issues getting it. scott.walz#embarcadero.com

sql express 2008 & tde

Good afternoon,
Anyone know if sql express 2008 version, the option of using TDE (Transparent Data Encryption).
I tried using it for testing and the server gave me the following error.
"The transparent data encryption is not available in the publication of this instance of SQL Server. See Books Online for more details on feature support in different editions of SQL Server."
Thanks and a greeting.
TDE is available only in Enterprise editions AFAIK.
As mentioned, Microsoft supports TDE only in Enterprise Edition. However, there are several third party products that will provide TDE to all editions and verions of SQL Server, including SQL Express. One of those products being ours: Encryptionizer for SQL Server. Another one that I am aware of is DBDefence. Internally they work very differently though: Encryptionizer sits between SQL Server and the Operating System, while DBDefence injects itself into the SQL process running in memory to change the behavior of the process.

SQL Azure Profiling

I read on the MS site that SQL Azure does not support SQL Profiler. What are people using to profile queries running on this platform?
I haven't got too far playing around with SQL Azure as yet, but from what I understand there isn't anything you can use at the moment.
From MS (probably the article you read):
Because SQL Azure performs the
physical administration, any
statements and options that attempt to
directly manipulate physical resources
will be blocked, such as Resource
Governor, file group references, and
some physical server DDL statements.
It is also not possible to set server
options and SQL trace flags or use the
SQL Server Profiler or the Database
Tuning Advisor utilities.
If there were to be an alernative, I'd imagine it would require the ability to set trace flags which you can't do, hence I don't think there is an option at the moment.
Solution? I can only suggest you have a local development copy of the db so you can run profiler locally on it. I know that won't help with "live" issues/debugging/monitoring but it depends on what you need it for.
Edit:
Quote from MSDN forum:
Q: Is SQL Profiler supported in SQL
Azure?
A: We do not support SQL Profiler in
v1 of SQL Azure.
Now, you could interpret that as a hint that Profiler will be supported in future versions. I think it will be a big requirement to get a lot of people on board, using SQL Azure seriously.
Update as of 9/17/2015:
Microsoft just announced a new feature called Index Advisor:
How does Index Advisor work? Index Advisor continuously monitors your
database workload, performs the analysis and recommends new indexes
that can further improve the DB performance.
Recommendations are always kept up-to-date: As the DB workload and
schema evolves, Index Advisor will monitor the changes and adjust the
recommendations accordingly. Each recommendation comes with the
estimated impact to DB workload performance: You can use this
information to prioritize the most impactful recommendations first. In
addition, Index Advisor provides a very easy and powerful way of
creating the recommended indexes.
Creating new indexes only takes a couple of clicks. Index Advisor
measures the impact of newly created indexes and provides a report on
index impact to users. You can get started with Index Advisor and
improve your database performance with the following simple steps. It
literally takes five minutes to get accustomed with Index Advisor’s
simple and intuitive user interface. Let’s get started!
Original Answer:
SQL Azure now has some native profiling. See http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get-sql-profiler-info-from-sql-azure.aspx for details.
Microsoft's stated position SQL Server Profiler is deprecated. As much as this is a bad idea, that's what they have said.
SQL Profile is already deprecated in SQL Server, and that’s part of
the reason that it doesn’t make sense to bring to SQL DB.
What this means is you are going back 20+ years in database performance monitoring and everyone is going to have to write their own perf monitoring scripts instead of having a standard factory delivered tool that's on every server you will go to. It's tantamount to deprecating "sp_help" and making every DBA write their own. Hope you know all your DMVs inside and out... INNER JOIN, OUTER JOIN, and CROSS APPLY syntax really well.
Update as of 2017/04/14:
Microsoft's Scott Guthrie today announced a lot of new features in SQLAzure(this is called sqlazure managed instance,which is currently in preview),which are expected to be present in SQLAzure in coming months..below are them
1.SQLAgent
2.SQLProfiler
3.SQLCLR
4.Service Broker
5.Logshipping,Transactional Replication
6.Native/Backup restore
7.Additional DMV's and Xevents
8.cross database querying
References:
https://youtu.be/0uT46lpjeQE?t=1415
I have tried today a new tool suggested by Microsoft that is called Azure Data Studio.
In this tool you can download an extension called Profiler and it seems to be working just as expected.
You can use Query store feature, look here for more details: http://azure.microsoft.com/blog/2015/06/08/query-store-a-flight-data-recorder-for-your-database/
The most close to SQL profiler, that I found working in Azure SQL, is SQL Workload Profiler
However note, that it’s beta version of a tool, created but a single person, and it is not too convinient to use.
SQL Azure offers following features to tune performance, profile queries in its own way, identity long running queries and much more
Intelligent Performance
Performance overview
Performance recommendations
Query Performance Insight
Automatic tuning

Resources