Posted on October 7, 2015
Blogging about this a bit late as I am a bit busy with all of the work around 356labs – my presentation design agency. I am privileged and happy to announce that for third year in a row, I will be speaking at the local SQLSaturday event here in Sofia. I will cover the topic of Optimistic Concurrency and why if you care about the performance and scalability of your apps, you need to care about this. The session will be very demo intensive, but not only as I am planning something special for it. Just for the sake of teasing you – imagine that we will travel around 3 worlds – 3 planets – Earth, Mars and Kepler 452b. Interested in that journey? If so, see you there!
P.S. I will bring some Pluralsight presents with me too..
Update: Even though I was not able to come and be part of the whole event, I think Sofia and our local SQLSaturday here is just one of the best in Europe! Whenever you see more than 300 people coming and being so engaged with the content, the speakers and the other attendees that, I believe, is a receipt for a success! For those of you who were part of my session – thank you, all! It was a pleasure to see a full room of people ready to learn! My slide deck is below (for those of you who were in the room – now you can see it in it’s own full beauty) and in case you want to play with the scripts I used, you can find them here!
Posted on September 8, 2015
There is one thing that really makes me sick in this world! This one thing is called broken presentations and especially broken presentation design. I just get very angry every time when I see freelancers or businesses and even whole events disappoint their audiences thus losing credibility, opportunities for future growth or completely miscommunicating some important information. What’s even worse is that this problem exists everywhere and I know it from experience because I have worked for both startups and enterprises. I have spoken at small events and I have spoken at huge conferences. It’s just everywhere! People are still presenting as it’s 1995. It’s 2015, though…
In the last 3 months I was a bit more quiet building the solution for the above problem – a creative agency – that is helping people, companies and events achieve more by making sure that their presentations will achieve the results they want. And if you think about it, it’s strange, right? I am just announcing the company publicly, but it already has customers!? How is that possible? The answer is simple – people understand the impact and the importance of great presentations and stunning presentation design. It’s just that it is hard, really hard, to create well-designed, yet effective slide deck and at the same time deliver your message properly. I can guarantee you that because I have been rated as top rated speaker at not just one event internationally plus I have been teaching presentation skills and presentation design to various people and companies in the last 5 years…
So if I have ever been of help to you(or even if we just know each other), do me a favor – share this with whoever you think we can be of help to. Probably you think that your company desperately needs such service or is it you that speak frequently and want to achieve even more with your presentations? Let me know at email@example.com or ping the team of 356labs at firstname.lastname@example.org. We are here to help because it’s high time to fix the bad presentations out there…
Posted on September 3, 2015
If there is one problem SQL Server DBAs are struggling with on a day-to-day basis, that’s performance! I am absolutely, 100% sure you have heard – “It is slow!”. Or one of my other favourites – “This was performing better last time I checked it!”.
As such, database admins are in a very interesting position every single time when someone says one of the above. However, in order for the DBA to understand what’s going on inside SQL Server and troubleshoot efficiently, he has to understand one very important thing – the wait statistics. The so called wait stats are one of the first (if not the first) thing that experienced DBAs are looking at whenever performance issues arrises.
A lot has been written on the web about wait stats and how to use them properly. However, up until now there was no single place where you can find detailed information together with examples on every wait stat that you can face in your work as a DBA. And before letting you know about the book itself, I am extremely happy to say that it is a friend of mine – Enrico van de Laar(t|b) who put his heart and soul into bringing this extensive knowledge to you. Enrico is not just the author of this book, but also quite experienced DBA and widely recognized speaker who is based in the Netherlands. So if you trust me, you have no reason to not trust this guy! He really understands what he is talking about!
Now, the book! It’s just a must have – for both junior and senior DBAs! I am staying behind my words because what Enrico did is not just explaining and showing to you all the most important wait stats and what they mean for your system, but he went beyond that because inside his book, you will be able to find information about wait statistics that currently no one has written and commented about. One example are the waits around Hekaton tables…
So if you were wondering what SQL Server book to order next or you just want to become better in your work as a DBA, just go to Amazon and preorder the paperback Pro SQL Server Wait Statistics by Apress(or purchase the e-book version from the Apress website here now!). You will learn a ton!
Posted on August 29, 2015
If you haven’t heard about the INDEED conference up until now, then it’s high time for you to hear about it. This event is the major Microsoft event and is held just once per year. It gathers a ton of people – both technical and business oriented, at one place to discuss future trends and technologies from the world of Microsoft. I spoke at that conference last year and it’s a huge pleasure for me to get invited to speak again(hey, at the end of the day, I was one of the top rated speakers last year). This year, I will be talking about something really important for all of us who care about the performance, scalability and results we deliver to our customers via our apps – the concurrency inside SQL Server. However, that ain’t gonna be your normal session on the topic, but an actual journey around 3 different planets.
+ I was asked to deliver an overview of SQL2016 in front of a group of decision makers and business owners and even if you are not one of them, you can join me again and ask whatever question interests you.
Sounds interesting or want to learn more? Here’s the site, register and I will see you there!
Update: The sessions went great and if I have to compare the event with the one last year – it was way, way better! A lot of the small details that were missing last year were now in place(don’t wanna mention them), so thanks, Microsoft, for inviting me and thank you all who attended both of my sessions! It was a pleasure to speak and share my experience with you! My slide deck from my concurrency session is below (the other one is not for upload – Microsoft Confidential) and the scripts I used are here.
Again, thanks to everyone involved in the organizations of the event! It was a pleasure.
Posted on July 28, 2015
Recently I was invited to participate in a podcast. Not “just a podcast” though, because this one is hosted by two guys that I have spoke and recorded at least 3 SQLHangouts up until now with – Matan Yungman(t|b) and Guy Glanster(t|b) from Madeira Services. We chatted about a lot of things and – why most of the trainings nowadays are crappy(especially the Microsoft ones), what we were working on recently and I was also asked to be the first on their show to play a really interesting game. Enjoy listening!
Posted on June 26, 2015
September will be a really intensive month which will actually start a bit earlier as I am first flying to Oslo at the end of August. From there, I am flying to Stockholm and then Paris. However, one week after Paris I will be flying to England for one of the most famous SQL Saturday conferences in Europe – the one in Cambridge! This event is colossal! It has 6 tracks and is held for more than 5 years now. I feel like this is the small SQLBits and I am really, really happy to be selected and be part of the line-up of speakers! My session will be covering two of the upcoming security features in SQL Server 2016, which are already present in the second CTP, but also in SQL Azure Database – Dynamic Data Masking and Row Level Security. We are seriously considering those two(let’s say it this way) for one of applications in our company(completely Azure based app), so I would be happy to share what we have found. And yeah, trust me – there are some interesting things that need to be considered if you are about to use any of the two features. Interested? I hope to see you at the event!
Update: Hands down, SQLSaturday Cambridge is one of the top SQLSats in Europe! This event is just an example of how a conference should be organised. Every aspect of it – how speakers are entertained, the venue, the content, the food, everything(and I mean it) is just perfect. As for my session – full room of very active attendees that led to very cool discussion around both Dynamic Data Masking and Row Level Security. So, that’s that! My slide deck is below and the code that I used can be downloaded from this link! Thanks to the whole organiser team for inviting me! It was a real pleasure!
Posted on June 23, 2015
Folks, that’s it! Number 35 is here and is probably the last SQLHangout(relax) until the end of July(you see – no worries). However, I am joined by a special guest – Guy Glantser(t|b) who is the founder of Madeira – a company that specializes in providing data solutions and is located in Israel. I know Guy from Matan Yungman(b|t) who has been at least twice already in the SQLHangouts and who I finally met in person this year at SQLBits! In this episode, Guy and I discussed his adventure on founding Madeira and what it is to start a company from the scratch. I would definitely recommend watching this one as you will find some quite interesting and unconventional strategies for managing people and operating a company! Enjoy! 😉
Posted on June 18, 2015
Some places in our world are more special than others. Some SQL conferences are also held in higher buildings than you might expect. Those two are both true(and there are many more) for one particular event and this is the SQLSaturday conference in Paris. I am really, really happy to join the French community again and speak at their annual event! My session will touch on two highly anticipated security features that are now real in SQL Azure Database – Row Level Security and Dynamic Data Masking. So, Azure, Security and Data. Key and at the same time – important words. Can’t wait already, so what else can I say except – I will see you in Paris!
Update: Writing this as I am sitting in one of the sessions of the event, I can already say the event will and is a success. There are around 200 people here on the 40th floor of Paris’s tallest building, the view is just incredible and and everything else – speakers, sessions and all the other logistics “stuff” is just fantastic. I have already uploaded my materials to the SQLSat web site, but if you need them now, you can grab the scripts from here and the slide deck from, obviously, below. Thanks again, organizers team, for inviting me! As always, it was a pleasure!
Update 2: Turned out and I have completely forgot that our sessions were recorded. I just saw my session is now on YouTube, so in case you want to watch the recording – you can do it below.
Posted on June 11, 2015
I am back! And I am back for a second time as part of the database course at Software University. It’s again a huge privilege for me to teach the two most advanced topics during the course – the one on transaction concurrency and the one on performance tuning. Last year these two lectures were rated by the students phenomenally and I promise no surprises this year too – the level will be outstanding! Looking forward to the opening day for the course – 16st of June and hope to see again full room of people ready to learn about SQL Server and the world of databases!
Update: Two lectures, two completely full rooms of more than 100 people! I had superb time teaching those guys and for those of you who are trainers – you know that it’s always a pleasure when your audience is simply trying to absorb as much as possible and is asking questions before, during and after your sessions! Again, thank you all and I hope you enjoyed the two days we were together as much as I did! All of the materials are below and of course on the SoftUni website.
Posted on June 9, 2015
Some of you may know that I am kind of a huge fan of Distributed Replay – a technology that not that many people know about, but at the same time a feature that can help you a ton especially when you are planning an upgrade, migration or you simply have a performance problem. DReplay has a problem though – you need to capture your application workload and that needs to happen with a Profiler trace and as you probably have heard already – Profiler is deprecated. Recently, however, Robert Dorr from Microsoft just mentioned as part of some other discussion that the latest version of the RML Utilities – 9.04.0004 – can convert an .xel file to a .trc. I immediately asked myself – so does that mean that now I can capture my workload with xEvent session -> convert the workload to a trace file and then replay it with Distributed Replay? Let’s find out…
By the way, this post was not going to be possible(as you will find out why below) without the help of Robert, so thank him and not me!
The first thing I did was to open a Profiler Replay template(as it includes exactly all the events that you need to capture in order to make DReplay work) and take a look at every event that was captured by it and select those same events for my xEvent session.
Once I have done that, I started the session and ran my workload by retaining the events into a file on my local machine. Once the workload was captured, I downloaded the latest version of the RML Utilities and I remember that Robert mentioned that in order to convert the .xel to .trc we need to use the -M parameter. I did not find any documentation on this, so I started guessing how the command should look like. At one point I ended up having this:
readtrace -I"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\XECapture_0_130781709497210000.xel" -M"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\DReplayTRC.trc"
However, when I tried to convert the file it was throwing errors for events that were not captured. That was kinda strange because remember – I mimicked the same events from the Replay template of Profiler. I read the output log which I found in some nasty directory – C:\Users\YourUser\AppData\Local\Temp. Once I reconfigured the session with all the new events, I again captured the workload and tried to convert to a trace file.
A lot hours later I was going back and forth, capturing, trying to convert and receiving those same errors for missing events. At that point I decided to write to Robert and ask him if there is some guidance or article, or something that I can use in order to make that work. He replied to me that there is a .sql script that will create the xEvent session with everything needed in order to make that work as part of the samples in the download. Ooooooh… okay! Let’s go there:
After entering the path where the .xel file should be, I again captured my workload and tried to convert. This time something different happened when I ran my readtrace command:
readtrace -I"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\XECapture_0_130781709497210000.xel" -M"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\DReplayTRC.trc"
The Reporter.exe opened up with analysis of the workload, but more importantly – there was no DReplayTRC.trc in the destination folder I selected?
Went back and forth, back and forth again with no success(again – there is no documentation on this – nothing anywhere). I again wrote to Robert and he said that the -M parameter does not accept output(and he was surprised that it was not throwing me an error), so I needed to do -M -o”the path to the file”. This means that if I run the below, it should work:
readtrace -I"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\XECapture_0_130781709497210000.xel" -M -o"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\DReplayTRC.trc"
And it did. Partially… The problem this time was that the -o parameter in this case was accepting DreplayTRC.trc as a folder and placing all the generated files there + there was a .trc file for each session from the workload and I did not want that. Again to the command line, this time using readtrace /?
Seeing the -MS parameter I was now optimist that I will finally be able to convert to a single trace file. Let’s see (+changed the directory output folder):
readtrace -I"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\XECapture_0_130781709497210000.xel" -MS -o"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\DReplayTRC"
Finally! We have managed to convert a .xel file containing our application workload to a SQL Profiler trace .trc file. Now that .trc file can be given to the Distributed Replay Controller to prepare it for replay…
I don’t know how you feel about this process, but I kinda feel that there should be a better way for doing all of these things in the future. If Distributed Replay is “the technology that we are going to be using for replaying mission critical workload in the future” as Microsoft said in 2012, then let’s hope that first DReplay will get a GUI(because you remember how many people were using Extended Events in SQL Server 2008R2, don’t you?) and second why not DReplay “accepting” .xel files in first place?
Thanks for hosting this one, Jes! Hoping you will be able to count to more than 100 at the end of this Tuesday!
Oh, by the way, if you want to stop the Reporter.exe to show up at the end of each export, just put -T18 at the end of the cmd command above. It should look like this.
readtrace -I"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\XECapture_0_130781709497210000.xel" -MS -o"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\DReplayTRC" -T18
Posted on June 7, 2015
And here we go again! I am happy to write a similar post to the one from last year – I have been selected to speak at the local SQLSaturday event in Oslo! It’s a huge pleasure for me to go back and speak for the community in Norway once again! The first event in 2014 was a great success and I really enjoyed it, so I am already pumped for this one! This time I will speak about…
By the way… for everyone who thinks his/her country is expensive – please come to Norway and more particularly Oslo. If you indeed do so, ping me on Twitter at @BorisHristov after you go back home and let me know if you still think the life in your country is expensive(the people who were there know what I mean).
Update: Oslo was great again! This year the attention to us as speakers was just incredible and I have to say – Oslo is becoming more and more one of those cities I am really considering going back again and again… I had a full room of people on my session, some of which quite active and interested in both Dynamic Data Masking and Row Level Security! The discussions continued even after the talk, so I can’t ask for more. Last, but not at least – my slides are below and the scripts here. Thanks so much once again to all of the organizers for inviting me to speak for you! It was an honour!
Posted on June 4, 2015
Ready for another SQLHangout? Here it is and it’s an interesting one! Together with Steph Locke(t|b) we talked about open sourcing database solutions. Yeap, you read that right. Listen to what Steph, who is one of the heads behind the great SQLRelay event in UK, has to share and think whether or not it is possible for you too to make some of your solutions open source! Enjoy!
Posted on June 2, 2015
Hope that post gets shared and make people think.
To all of you who register for a free SQL events like SQLSaturday and then don’t show up. Here are my questions to you:
I am really sorry to say that, but it cannot get easier for you than that. It just can’t and because I know that the drop-out rate of almost every SQLSaturday or other free event is quite high, I am now asking all of you – organizers, speakers, regular attendees, everyone – please share and talk with as many people as possible and let them realize all of the above. I am sure that will help raise the rate of the people that show up(in the same way it helps when you – organizers – are asking the registered to unregister if they now know they won’t be able to come at the event) and I am sure because I have already seen a successful example – Dejan Sarka(t|b) did exactly that(and this blog post is “inspired” because of a recent conversation with him on that same topic) and the results were that he(together with Matija Lah and Mladen Prajdic) had more than 90% of the registered people show up at their SQLSaturday in Slovenia last year!
I just felt I needed to finally write this one as I have been talking about it with so many people about it in the last few years. Now I am hoping. I am hoping something will change…
Posted on June 1, 2015
I am thrilled to announce that I am again going to be one of the speakers of the SQLSaturday conference in Copenhagen! Last year the event was just amazing and I expect nothing else, but the same this year! I think I have heard from the organizers that this years’ venue will be simply mind blowing, so what can I say except – I can’t wait! This year I am going to speak about Azure and how we can secure the data inside our SQL Azure Databases! Important topic and quite cool technologies(ones that we were waiting for quite some time!), so hope to see you there on 19th of September!
Update: SQLSaturday Copenhagen is always an event you want to be at. One of the reasons(even though it’s not just one) is the content that is being presented here by top experts. I feel privileged to be part of that crowd and I really hope that my audience enjoyed and learned a ton. Based on the engagement after the session I think that happened and I hope that no one will remember that I needed to use some of my backup videos(yes, I have such!) because of the internet issues I was faced with. Again – thanks to the whole team for organizing and inviting me to the event. Slides are obviously below and my code can be downloaded here.
Posted on May 27, 2015
It’s time! The first public CTP of SQL Server 2016 is here! Click on the link, download both files and just run the .exe. It’s as simple as that!
… and for those of you who still haven’t heard what’s new, just throwing you some keywords:
Posted on May 26, 2015
It’s time for the second SoftUni Conf for this year and it’s coming really soon – at the end of this June! I am really happy that I was invited to speak at the conference again and I am already looking forward to spend 2 days with the great students of the best software university in Bulgaria. The conference will be held in Borovets – a wonderful place in the Rila Mountain and I am about to take the students on a journey to what it takes to create a business intelligence solution using SQL Server. Let’s see if anyone from them will decide to choose a career in that path.
Update: Video(in Bulgarian) and slides are now available! What a great, great event and I am again so sorry I was not able to stay till the end on Sunday and had to leave immediately after my session. Hopefully next time I will be able to enjoy the whole experience in the same way as I did in the start of the year!
Posted on May 24, 2015
Are you one of the folks that can’t wait to put his hands on the upcoming release of SQL Server 2016? Surprise, surprise! There already is a way for you to do that via the Microsoft Virtual Labs where you will find 7(currently) hands-on trainings covering some of the new things coming with 2016.
So what are you waiting for? Prepare your Microsoft account, click on the link above and play with the product for free!
Update(25.05.2015): The labs are now down and unavailable because of a security breach that was allowing people who were using them to download the private bits of SQL Server 2016 CTP 1.3. Stay tuned.
Update(26.05.2015): The labs are now again accessible.
Posted on May 23, 2015
I am extremely happy to announce that I will be speaking at the first SQLSaturday conference in Bratislava, Slovakia on 20th of June. It’s just one week after SQLSaturday Rheinland, where I will be speaking too, but at the end of the day, there is no reason for me to not accept and speak for the community in Slovakia. I am going to share five(or probably more, we will see) of the hidden performance improvements in SQL Server 2014 which Microsoft almost did not mention to us about + I am going to be giving away some Pluralsight presents, so I expect this to be fun!
Can’t wait! See you there…
Update: Even though this was the first SQLSaturday in Slovakia and even though we were all together around 80 people, I truly believe that this event went great and was of huge value to the community in Bratislava! We had everything we needed – great venue(thanks, Microsoft Slovakia), a lot of food, amazing coffee, superb sponsors and of course great speakers and presentations! I am really happy I was part of this event! Again, thanks Karol and I hope(and I know it’s not just me) you will organise an event in 2016 too!
Posted on May 21, 2015
HP. A company that I really enjoyed working for and a company that I still hope(I really do!) will try to figure out it’s way back to the top. A company that’s almost completely broken now, reminds us once again how broken it is with the video above. Yesterday this video showed up in my subscriptions tab on YouTube, so I decided to check out how are their new consumer products going. And while I was watching, I heard this from the person in the video:
We incorporated best-in-class keyboard, so not only is a traditional keyboard.
It has Num key built in.
It is… extremely hard for me to comment on that(except with a Gif) absolutely ridiculous, how can I say it, … thing. So the innovation is that you can have a … NUM key on your keyboard? Ammm… Okay.
What pisses me of are so many things…
I know that no one will care about my opinion and I know it because even as an employee – no one cared when I was saying those out loud. However, if HP wants to get back at the top, my beliefs are that they have to change their approach to a lot of things and fire a lot of people(no, I am serious here).
P.S. While writing this another great news -> HP’s cloud considered now too small for Gartner to include it in their quadrant. Congratulations, HP! I thought that you were focusing quite a lot on this. Oh, and yeah, if you believe that “The Cloud” is not important(because recently you said something about it), let me remind you once again that you are lost!
And it still hurts me that you are.
Posted on May 19, 2015
Yesterday I was asked by the SharePoint admins if they can receive e-mails confirming them that their backups ran successfully. They are using SQL Server Agent jobs in their environment, so I immediately replied to them – yeap, you can. Just configure Database Mail and an Operator. Of course what happened next is that they asked me to help them with that, so I sat down with them for 5 minutes (they had SMTP server ready for use) and we set everything up. However, while we were configuring the Operator, they asked whether or not it’s possible to add one more e-mail to receive those notifications. At that point it struck me that I have never tested(+I was not able to find it on the web and thus I am blogging it now) if I can add just one more e-mail in that same Operator? Guess what – it’s possible and it works like charm. Here is how simple it is – you just split the e-mail addresses by using ‘;‘
Let me know if it was just me that haven’t tested that till now. I am curious!