RSS

Category Archives: Database Administration

Get valuable Virtual Log File (VLF) information for all your databases log files

Get valuable Virtual Log File (VLF) information for all your databases log files

I had this problem where I needed to gather Transaction Log information on multiple databases and check for valuable statistics on them. Running the command [DBCC Loginfo] brings back a number of rows for each Virtual Log File (VLF) in your Log File. It is really hard to do anything useful with that information on a larger scale. Each row returned gives you an estimate for the number of VLFs per Log File. Sure you could use the internal (and hidden) system stored procedure sp_msforeachdb to get the information for all database but it looks horrible. Here try it out for yourself before you read the rest of the post:


exec sp_MSforeachdb 'Use [?] select db_name(); DBCC LogInfo'

So why not make it better? That’s what I thought to myself, and I have recently been playing with storing DBCC command output to tables for analysis. I’ve put some together some code that allows you to capture the output of DBCC LogInfo into a Temp Table and then get some interesting information about the number of VLFs per database and other valuable information; see the comments for more information. Just by storing some of this data temporarily, I was able to write queries against it and discovered a major inconsistency in the size of my VLFs in a Log File that could potentially cause performance issues.

Feel free to create a permanent table for this data and run it on a regular basis to get an understanding of what your system is doing for troubleshooting. I also commented out the date field since I deemed it unnecessary, but if you’re looking for trending it maybe a good option to have that additional data.

Read the rest of this entry »

 

Tags: , , ,

SQL 2016 Row-Level Security Demo: Users with various clearance levels

SQL 2016 Row-Level Security Demo: Users with various clearance levels

SQL 2016 is right around the corner and one of the new security enhancements promised is Row-Level security for tables.  It’s a great new feature and pretty easy to implement.  I have created a simple demo that gives various users access to data based on specific clearance level to the data.  Feel free to modify the code and play around with it how to see fit.  There are many different ways to setup Row-Level security and this is just one scenario.  One of the things you’ll notice if you go through the scripts below is that the dbo user does not have access to the data after the the security policy is applied.  This is key for many environments where customers do not want administrators to have access to sensitive data.  Of course anyone with good coding skills and the proper permissions could circumvent that, but that’s why we put auditing measures in place 🙂

I’ve broken up the code into three sections.  The first is for setting up the database and permissions.  The second section creates the tables in the database and puts test data in them.  The third section is for the creation of the function and security policy which enables Row-Level Security. After creating the function and security policy, go back to the second section and re-run the select statements to see the security policy in action.  This demo was created on SQL 2016 CTP 2.2.  If you are interested in learning more about Row-Level Security and to see some other demos please refer to this webinar from PASS.

Read the rest of this entry »

 

Tags: , , ,

Podcast about my career and the SQL Server Community with Chris Bell

Podcast about my career and the SQL Server Community with Chris Bell

During my time at SQL Saturday in Philadelphia (Early June), Chris Bell invited me to be a guest on his Podcast.  Here is the result of that fun interaction 🙂

https://wateroxconsulting.com/archives/podcast/010-ayman-el-ghazali/

I just want to reiterate my thanks to everyone who ever helped me on my career path from my colleagues at work to my colleagues in the field. HUGE THANK YOU!

I hope you enjoy it!

 

Tags:

SQL Server 2014 BI دورة تمهيدية شاملة في

SQL Server 2014 BI دورة تمهيدية شاملة في

الزملاء الأعزاء من العالم!
السلام عليكم و رحمه الله و بركاته
أقدم لكم دورة تمهيدية شاملة في SQL Server 2014 BI. وتقدم هذه الدورة التدريبية باللغة العربية، وتهدف إلى المساعدة فى التقديم للمفاهيم الأساسية للمهنيين المتخصصين فى قواعد البيانات عامه وبخاصه SQL Server BI في محاولة متواضعه منى لنشر هذه المعرفة والعلم بين اخوانى الناطقين باللغه العربية.
تهدف هذة الدورة التدريبية الى تلبيه فضول واثاره اهتمام المتخصصين فى مجال SQL Server BI وعلى وجه الخصوص  BI Developers كما ان هذة الدورة مبسطه الشرح خاصة فى الدروس الاولى لكى يسهل على المبتدئين فى مجال SQL Server BI متابعتها واضعا فى اعتبارى انه لا يوجد الا القليل من المواد فى هذا المجال باللغة العربية. فقررت بعون الله وتوفيقه ان ايسر هذا العلم بين ايديكم لعل الله ينفع به احد من اخوانى و اخواتى فى اي مكان فى العالم. اسال الله عز وجل ان تنال هذه الدروس اعجاب الجميع و خاصه المهتمين بمجال SQL Server BI ارجو من جميع الأخوة والأخوات ان يذكرونى فى صالح دعائهم
و لاتترددوا فى مراسلتى و ابداء ارائكم و مقترحاتكم البناءة لتطوير هذا العمل الخيرى باءذن الله تعالى

أخوكم
أيمن الغزالى
3/2015 فى واشنطن- الولايات المتحدة الأمريكية

Link to Videos

Dear Colleagues of the Database World!
I present to you a comprehensive introductory course in SQL Server
2014 BI. This course is presented in the Arabic language, and is
intended to introduce core concepts to Database Professionals that are
trying to acquire knowledge in SQL Server BI. The course is geared
towards those that aspire to become BI Developers, or those just
interesting in learning the basics of SQL Server BI. Since there is very
little material in Arabic, I decided to try to use my skills to bridge
the knowledge gap for my SQL Family that communicates in Arabic. I
hope you enjoy the classes and please feel free to share and leave
constructive feedback.

Thank you and good luck future SQL Server Professionals world wide!

Special thanks to my friends Mohamed Elsharkawy for his help and support with this production.

 
 

Tags: , , , , , , , , , , , ,

[SQL Snacks Video] Performance Tuning 103 – T-Logs and VLFs


Finally the arrival of Part 3 of my SQL Snack Pack on Performance Tuning! The series is dedicated to help beginners understand how to start performance tuning with SQL Server. The first video was about performing a baseline using the PAL tool.I would highly recommend you review that video as well as my SQL Snack on Instant File Initialization. Also, if you missed part two from yesterday you can review it here.

If you are still interested in learning more about Performance tuning with SQL Server, I will be giving an hour long presentation with the PASS DBA Fundamentals Virtual Chapter on January 6, 2015 (11 am Central Time/Noon Eastern Time).  For more information please visit http://dbafundamentals.sqlpass.org/ and join PASS for a great way to learn more about SQL Server.

Code from Demo below:

Read the rest of this entry »

 

Tags: , , , , , ,

[SQL Snacks Video] Performance Tuning 102 – Files, FileGroups, and TempDB

[SQL Snacks Video] Performance Tuning 102 – Files, FileGroups, and TempDB

Finally the arrival of Part 2 of my SQL Snack Pack on Performance Tuning! The series is dedicated to help beginners understand how to start performance tuning with SQL Server. The first video was about performing a baseline using the PAL tool.I would highly recommend you review that video as well as my SQL Snack on Instant File Initialization. This second video discusses the importance of properly sizing Data files, placement, and how the Proportional Fill-Algorithm works for data insertion. I’m hoping you get some last minute Performance tuning in before 2015 and so I will be posting the third video within the next 24 hours.

Code from Demo below:

Read the rest of this entry »

 

Tags: , , , , , ,

[SQL Snacks Video] Performance Tuning 101 – Baseline with PAL Tools

[SQL Snacks Video] Performance Tuning 101 – Baseline with PAL Tools

Welcome to Part 1 of my SQL Snack Pack on Performance Tuning! The series is dedicated to help beginners understand how to start performance tuning with SQL Server. This first video describes how to setup a baseline for your system using the PAL tools. It is essential to get a baseline before you start performance tuning so that you can determine how effective the efforts done in trying to tune your SQL Server have been.  The PAL tools at first look a little intimidating but they are really very easy to use and extremely helpful for performance analysis. Enjoy and happy baselining!

A special thanks to Edgardo Valdez for showing me the how to use this tool.

Link to download PAL Tools and Prerequisites: https://pal.codeplex.com/

 

Tags: , , , , , ,

SQL Saturday 294 Philadelphia, Nostalgic!

SQL Saturday 294 Philadelphia, Nostalgic!

Less than a week left and I’m extremely excited about SQL Saturday in Philly on June 7th, 2014 and the Precon the day before (I signed up for Allan Hirt’s).  I lived in Philadelphia for about 10 years during which I went to college, had my first two full-time jobs, and my first to kids were born in that area. This SQL Saturday is going to be a blast from the past for me.  The actual event takes place in Malvern PA which is off of 202 in the Northwestern Region of the Philadelphia suburbs.  It is part of the “mainline” and close to Valley Forge, King of Prussia and other historic/tourist attractions.  I used to work in the Mainline area for Johnson Matthey in Wayne (and part time in Malvern) so I’m very excited about taking this trip back to visit friends and family.

For those of you that don’t know about SQL Saturday it is a fantastic event. Here are some of the reasons I’ve encouraged people to attend SQL Saturday events:

Read the rest of this entry »

 

Tags: , , , , ,

[SQL Snacks Video] SQL Server Table Partitioning 103

[SQL Snacks Video] SQL Server Table Partitioning 103

Welcome back for part 3 of my SQL Snack Pack on Table Partitioning! If you have not watched the first two videos, I would highly encourage you to do so.

Read the rest of this entry »

 

Tags: , , , , , , , , ,

SQL Server Internals Presentation Double Time!

SQL Server Internals Presentation Double Time!

I’ll be doing double time over the next two weeks with Two Presentations on SQL Server Internals. It is essentially just a repeat of the same presentation but with two chances to attend 🙂

Here are the details of the timings for both presentations:

April 29th @ 12 Noon EST – Dell Software
I will only cover the first half of the slides during this time slot
Click here to Register

May 6th @ 12 Noon EST  – PASS DBA Fundamentals Virtual Chapter
Click here to Register

Read the rest of this entry »

 

Tags: ,

[SQL Snacks Video] SQL Server Table Partitioning 102

[SQL Snacks Video] SQL Server Table Partitioning 102

Welcome back for part 2 of my SQL Snack Pack on Table Partitioning! If you have not watched the first video, I would highly encourage you to do so.

Read the rest of this entry »

 

Tags: , , , , , , , , ,

[SQL Snacks Video] SQL Server Table Partitioning 101

[SQL Snacks Video] SQL Server Table Partitioning 101

I hope you’re hungry for another SQL Snack! In fact, this will be one of a series of snacks (dare I call it a SQL Snack pack?). Table partitioning is a fantastic feature that is easy to learn and can significantly improve your OLTP and Data-warehouse environments. It can be a little intimidating because it is tricky to get started with, but once you get the basics down you’ll realize it’s pretty straight forward and a very useful feature to have.  I will be providing the code and outline for each of the SQL Snacks related to table partitioning so that you have a chance to practice on your own.  Happy partitioning!

Read the rest of this entry »

 

Tags: , , , , , , , , ,

SQL Saturday #277 Richmond – Covering new ground

SQL Saturday #277 Richmond – Covering new ground

SQL Saturday has been a fantastic experience for me here in the DC area (I blogged about it here) and I hope for the same thing in Richmond.  This is my first time to attend a SQL Saturday in a city outside my area of residency, and I will also be speaking there.  This is a bit of a new journey and one that I think I will enjoy.

This is a new experience and one that I have been excited about since speaking with Wayne Sheffield about it at the DC SQL Saturday in December 2013. I have him to thank for encouraging me to spread my wings and I hope for a smooth ride upward from here.  That is the embodiment of the Professional Association for SQL Server (PASS) after all; to establish life long learning and grow the community by giving back.  I think I could probably do a commercial for them or be a PASS spokesperson.  Seriously though, I’ve learned so many things that have helped my career for free or a very low cost.

For this SQL Saturday, I’m also planning to attend the PreCon event scheduled for the day before.  There is still time to register by going to the main site for the event here. I’ve selected to go to session by Robert Davis for my PreCon and it was a hard choice because the “Murder Thy Wrote” PreCon was very appealing as well and I hope to catch that one at the next SQL Saturday I attend.

Read the rest of this entry »

 

Tags: , , , , ,

[SQL Snacks Video] The What, Why, and How of Instant File Initialization with SQL Server

[SQL Snacks Video] The What, Why, and How of Instant File Initialization with SQL Server

Instant File Initialization (IFI) is an interesting topic with regards to how SQL Server works with storage. It is an easy feature to turn on and can improve the performance of your server; specifically with creation and growth of data files including TempDB rebuilds with SQL Server restarts.  There is a slight security risk where a professional data thief could potentially recover bits of data that have not been over written since IFI was turned on, but the chances of that happening are slim.  Plus, if they have physical access to the hard drives on your server, you will have bigger problems to fix.

So without further ado here is the next delicious SQL Snack for Instant File Initialization:

 

Tags: , , ,

[SQL Snacks Video] Importance of COPY_ONLY Backups


There are many features/options we sometimes overlook and then wonder later what went wrong. The COPY_ONLY option with backups is one that I felt is important to highlight to SQL Server DBAs. This backup is independent backup that is not part of the regular cycled backups that you perform; hint if you’re not performing regular backups please get up and schedule them NOW! Sorry for yelling 🙂

Using this option when doing backups allows you to take backups that do not interfere with your regularly scheduled backups in order to move them off to a QA, Development, or Staging area where you can test against that database or fix bugs without interrupting your production environment. Many times, I have seen that off-cycle backups are taken which become part of the backup set and then are deleted. This can cause negative consequences when doing restores as I will demonstrate in today’s SQL Snack:

Code is provided below if you would like to test it yourself. Please watch the video in order to understand how to test this yourself:

Read the rest of this entry »

 

Tags: , , , , , ,

[SQL Snacks Video] Tail Log Backup and Recovery Demo

[SQL Snacks Video] Tail Log Backup and Recovery Demo

In December 2013 I presented at a SQL Saturday event in Washington DC. My presentation was about Backup and Recovery Fundamentals which I had done before for the PASS DBA Fundamentals Virtual Chapter. This time around, I decided to add a Tail Log (Active Log) Backup and Recovery demo to enhance my Presentation. The presentation went quite well, and so I’ve decided to put a short video together to demonstrate how to do a Tail Log Backup and Recovery.


***Make sure you change the backup, database, and log file paths to match your configuration***

Code for demo below.
Read the rest of this entry »

 

Tags: , , , , , , ,

[Video] ApexSQL Log – Software Review

[Video] ApexSQL Log – Software Review

Today I will be reviewing the product ApexSQL Log which is a tool designed for Transaction Log discovery and recovery.

The team at ApexSQL were very friendly and offered me lots of support and help in using the product.  I opted to do everything myself just to see how easy it is to learn and use the product.  It took me about 30 minutes to get fully acquainted with it; although I’m not an expert now I know my way around the product very well. It’s always great to have a product with an easy to use interface that does not have a steep learning curve.

Note: this is not a product endorsement
Read the rest of this entry »

 

Tags: , , , , , , ,

SQL Server 2012 دورة تمهيدية شاملة في

SQL Server 2012 دورة تمهيدية شاملة في

الزملاء الأعزاء من العالم!
السلام عليكم و رحمه الله و بركاته
أقدم لكم دورة تمهيدية شاملة في SQL Server 2012. وتقدم هذه الدورة التدريبية باللغة العربية، وتهدف إلى المساعدة فى التقديم للمفاهيم الأساسية للمهنيين المتخصصين فى قواعد البيانات عامه وبخاصه SQL Server في محاولة متواضعه منى لنشر هذه المعرفة والعلم بين اخوانى الناطقين باللغه العربية.
تهدف هذة الدورة التدريبية الى تلبيه فضول واثاره اهتمام المتخصصين فى مجال SQL Server وعلى وجه الخصوص DBAs و كذلك Developers كما ان هذة الدورة مبسطه الشرح خاصة فى الدروس الاولى لكى يسهل على المبتدئين فى مجال SQL Server متابعتها واضعا فى اعتبارى انه لا يوجد الا القليل من المواد فى هذا المجال باللغة العربية. فقررت بعون الله وتوفيقه ان ايسر هذا العلم بين ايديكم لعل الله ينفع به احد من اخوانى و اخواتى فى اي مكان فى العالم. اسال الله عز وجل ان تنال هذه الدروس اعجاب الجميع و خاصه المهتمين بمجال SQL Server ارجو من جميع الأخوة والأخوات ان يذكرونى فى صالح دعائهم
و لاتترددوا فى مراسلتى و ابداء ارائكم و مقترحاتكم البناءة لتطوير هذا العمل الخيرى باءذن الله تعالى

أخوكم
أيمن الغزالى
ديسمبر2013 فى واشنطن- الولايات المتحدة الأمريكية

Link to Videos

Dear Colleagues of the Database World!
I present to you a comprehensive introductory course in SQL Server
2012. This course is presented in the Arabic language, and is
intended to introduce core concepts to Database Professionals that are
trying to acquire knowledge in SQL Server. The course is geared
towards those that aspire to become DBAs, Developers, or those just
interesting in learning the basics of SQL Server. Since there is very
little material in Arabic, I decided to try to use my skills to bridge
the knowledge gap for my SQL Family that communicates in Arabic. I
hope you enjoy the classes and please feel free to share and leave
constructive feedback.

Thank you and good luck future SQL Server Professionals world wide!

Special thanks to my friends Mohamed Elsharkawy, Jihad Abouhatab and my brother Islam El-Ghazali for their help and support with this production.

 
 

Tags: , , , , , , , , , , , ,

Why SQL Server Professionals should love Windows 8

Why SQL Server Professionals should love Windows 8

Alright, I’ve got your attention. You’re probably thinking “who is this crazy guy that is using the word Love with Windows 8 in the same sentence?” Honestly though, I have not had many problems with Windows 8 and I’ve been happy running it for a long time. I’m actually disappointed that I don’t have Windows 8 at my job, so I can only use it at home. It has been extremely beneficial for me for my SQL Server related work. Why? And why am I stalling to answer your question? And why am I going to change the subject to Hyper-V?

If you’re still reading, then great, you’ve got the patience for what is coming next. Windows 8 Pro includes a Hyper Visor in it (Hyper-V to be exact).  I’m not talking about software to connect to virtual environments, I’m talking about an actual Hyper Visor that allows you to create and manage virtual machines.  Once you enable the option you’re ready to go after a restart, it’s that simple.

So what does this have to do with me as a SQL Server Professional? Well, how else are you going to build your own lab environment at home or at work where you can play around, build and break things, and be your own domain admin (warning: power may go to your head on that last one). It’s all part of your life long learning journey and your drive to become a better SQL Server Professional and get the latest and greatest version on your machine to test out without ruining your OS. It so happens that I’m a nice guy, and I’ll show you how to get your environment setup and how to create “templates” for future VMs with this Hyper-V Tricks for the SQL Professional Video I put together.

Are you ready to push SQL Server to it’s limits, test things you’ve never tested before, build and break environments without losing your job? If the answer is yes then this video is for you! When you’re done with this video make sure you check out my Virtual SQL Server Lab with Clustering post to enhance your own Virtual playground.

PowerShell Scripts mentioned in video (Remember to rename your VM if you like and to change the paths to match your setup):

new-vm -Name “SQLPS” -MemoryStartupBytes 2048MB -Path R:\HyperV\

new-vhd -ParentPath “R:\HyperV\SQL 2012 Template\SQL2012 Template Drive.vhdx” -Path R:\HyperV\SQLPS\SQLPS.vhdx -Differencing

Add-VMHardDiskDrive -VMName SQLPS -Path “R:\HyperV\SQLPS\SQLPS.vhdx”

 

Tags: , , , , , , , , , , ,

I’m speaking at SQL Server Saturday #233 – Washington DC!

I’m speaking at SQL Server Saturday #233 – Washington DC!

It’s that time of the year again when SQL Saturday makes its way back to the Washington DC Area. Here is a link to register and to get all the details you need http://www.sqlsaturday.com/233/eventhome.aspx. I hope to meet a lot of new SQL Server professionals this year. Last year, I met a gentleman that now works with me, so as you can see networking pays off 🙂

Now this year’s SQL Saturday is a little different for me because I will be one of the speakers! I am very excited, as well as a little nervous.  I think having some nervousness helps me prepare because I mentally tell myself “makes sure you know what you are talking about so you don’t look like an idiot!” My topic will be about the fundamentals of Backup and Recovery with SQL Server.  It is targeted towards beginners and here is a brief abstract:

Backup and Recovery are essential parts of and DBA’s job. After all, if you lose your data you lose your job so you need a great backup strategy. In this session we will cover Recovery Models, Backup Types, Backup Strategy, Restores, RTO, RPO, and understanding how your Transaction Log is maintained through backups.

Finally, I wanted to share my thoughts on some of the other interesting sessions that are being held that I will be trying to attend. My disclaimer is that there are so many really great sessions that it is almost impossible to pick sometimes.

Read the rest of this entry »

 

Tags: , , , , , , , ,

 
%d bloggers like this: