Thursday, March 21, 2013
SSIS Error 'Microsoft.ACE.OLEDB.12.0' Provider Is Not Registered
Wednesday, October 24, 2012
Install .NET Framework 3.5.1 using Powershell
I started to study SQL Server 2012 to take certification exam and I was setting up a lab environment. In one of the steps the exercise was to install .NET Framework 3.5.1 using powershell. .NET Framework 3.5.1 is prereq for SQL Server 2012.
To be able to install .NET Framework the I needed to start the session elevated to administrator and then execute the powershell commands. To accomplish this I took the following steps:
- Right click the powershell icon on the taskbar and click on 'Run As Administrator'.
- In the powershell window type this command 'Import-Module ServerManager' then hit enter to execute (exclude the single tick before the Import and after the ServerManager)
- execute the command 'add-windowsfeature net-framework-core' and hit enter (leave out the single ticks around the command)
HTH,
Bulent
Tuesday, September 25, 2012
PowerShell ExecutionPolicy Access Denied To The Registry Key
Thursday, July 26, 2012
VirtualBox Cannot Register The Hard Disk (UUID Already Exists)
I wanted to use the existing virtual machine and not have to install it all over again. So I copied the folder where my Virtual Machine is stored to another folder. Then opened the VirtualBox and started to create a new virtual machine and pointed it to the new folder where I copied the contents of the folder for the first Virtual Machine and that's when I got the following error.
Then I started searching the Internet because I knew that the solution must have been available. I came to find the solution and here is the simple fix for the problem. We need to open a command prompt and run a command to reset the uuid for the .vdi file where we copied to initiate the second virtual machine. Here is the steps that need to be done.
1. Start command prompt (I recommend running it as administrator).
2. Change your directory to VirtualBox folder. In my case I am running x64 OS so changed my directory to "C:\Program Files\Oracle\VirtualBox\"
3. Execute the command to reset the uuid.
VBOXMANAGE.EXE internalcommands sethduuid <PathOfNewVDI>
The screen shot below is from my workstation which reset the uuid and then I moved on with the VirtualBox and created the new virtual machine. So in minutes we have a new vm running to do the test. Simple and fast as long as you know the solution.
HTH,
Bulent
Monday, July 2, 2012
SQL Server Create Identity Field Using Select Into
SELECT IDENTITY(INT,1,1) AS RowID,
*
INTO dbo.MyTable_Backup
FROM dbo.MyTable
Hope this helps,
Bulent
Monday, February 20, 2012
Compressing SQL Server Backup Files
Starting with SQL Server 2008 Enterprise Edition we have the option of compressing backup files (this includes both BACKUP DATABASE and BACKUP LOG statements which mean not only database backups but log file backups will be compressed) to save disk space and also decrease the duration of the backup and restore operations. The backup compression was an enterprise edition only feature with SQL Server 2008 but with SQL Server 2008 R2 this feature is supported by standard and higher editions. So that was welcome news for me since I support number of SQL Server 2008 R2 Standard Edition.
I have been using T-SQL script to backup databases. The script checks the edition of the SQL Server and then builds the backup command to compress the backup file if it’s enterprise edition or just backups the database if it was a standard edition.
Before the end of 2011 I have completed deploying/upgrading to SQL Server 2008 R2. That meant that my script no longer needed to check the edition of SQL Server 2008 R2 since the compression is already supported in standard and higher editions. So I turned to global configurations and enable the backup compressions. I would like to remind the readers that enabling the backup compression creates additional CPU overhead which depends on you workload might impact your server performance. I suggest that you test your backup process and if necessary using Resource Governor (this is Enterprise Edition only feature) create a low priority compressed backup in a session whose CPU usage is limited by Resource Governor when CPU contention occurs.
Let’s start with checking the backup compression setting for the server by using the script below.
USE master
SELECT *
FROM sys.configurations
WHERE name = 'backup compression default'
ORDER BY name
Let’s check the returned result for the value_in_use column. This shows us the running value curently in effect for this option and is_dynamic column tells us the changes take effect after the RECONFIGURE statement executed. Now it’s time to execute the below script to enable the backup compression since the value_in_use is 0 for the server I am currently working.
USE master
EXEC SP_CONFIGURE 'backup compression default',1
RECONFIGURE
Let’s check the value_in_use by executing the first select statement.
USE master
SELECT *
FROM sys.configurations
WHERE name = 'backup compression default'
Now we should see that the value_in_use is 1 and we don’t need to use the optional keyword COMPRESSION in the backup database command.
By default when backup is compressed checksums are performed to detect media corruptions but if for any reason you need, you can explicitly disable the compression by using NO_COMPRESSION keyword in your backup statement.
I have seen anywhere from 35% to 80% compression ration and backup duration decrease from several hours to 30-45 minutes for the databases I administor. Your mileage will vary and you should TEST, TEST, TEST and deploy your changes for your environments. Here is the link to find out more about backup database command in MSDN.
HTH,
Bulent
Friday, February 3, 2012
Dropping Multiple SQL Server Objects in Single Line
As humans we try to find a way to work faster and efficient. As data professionals, typing less probably is another thing we want. My SQL Server tip today is about dropping multiple objects (tables, views, stored procedures, and even databases) in single drop statement. This is powerful but can be dangerous in production so please use caution. Here is a script that creates couple of tables and then drops both tables in single drop statement.
Sincerely,
Bulent
-- CREATE TABLES
USE tempdb
GO
CREATE TABLE dbo.TableT1 (t1c1 TINYINT)
CREATE TABLE dbo.TableT2 (t2c1 TINYINT)
GO
INSERT INTO dbo.TableT1 VALUES(1)
INSERT INTO dbo.TableT2 VALUES(2)
GO
-- CHECK THE TABLES CREATED
SELECT *
FROM sys.tables
WHERE name LIKE 'TableT_'
GO
-- DROP BOTH TABLES IN SINGLE DROP STATEMENT
DROP TABLE dbo.TableT1, dbo.TableT2
GO
-- CHECK THE TABLES DROPPED
SELECT *
FROM sys.tables
WHERE name LIKE 'TableT_'
GO