Speaking at Microsoft INDEED 2015

Microsoft_INDEED_2015If 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, however, I will be talking about something really fresh and modern (let’s call it) and it’s related to the so-called In-Memory OLTP tables. I am going to dive deep into what makes that technology work that fast especially from concurrency stand point. I believe it’s high time for such a session because if the technology was not ready for production uses in the 2014 release, that’s about to change in the upcoming SQL Server 2016.

Sounds interesting or want to learn more? Here’s the site, register and I will see you there!

Podcast for SQL Server Radio

Madeira Podcast

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!

Speaking at SQLSaturday #411, Cambridge

SQLSaturday_Cambridge_2015September 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!

SQLHangout #35
Founding a Company?

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! 😉

Speaking at SQLSaturday #410, Paris

SQLSaturday_410_Paris_FranceSome 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!


Teaching Advanced Topics at SoftUni Database Class

softuni-bulgariaI 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.

T-SQL Tuesday #67:
Extended Events and…
Distributed Replay?

TSQL2sDaySome 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. Replay_to_xEvent_Events
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?Reporter
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

Don’t ask. :)

Speaking at SQLSaturday #414, Oslo, Norway

SQLSaturday_414_Oslo_2015And 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).

SQLHangout #34 Open Sourcing Database Solutions?

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!

On Free Conferences…

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:

  1. Are you completely aware that those events are indeed free for you?
  2. Do you recognize that the speakers are not only willing to share their knowledge for free, but they are actually coming completely on their time and expenses?
  3. Do you know that the event is so free that will most of the times provide even food and drinks?
  4. Did you know that the sponsors are also giving away great presents and you have to do nothing to be able to win them?
  5. Are you sure that you realize how much networking you can make and what an impact that can have on your career?
  6. Don’t you want to just have fun and be surrounded with great people?
  7. If the answer to all of those questions is “Yes”, then please remember that in order for you to “get” all of the above, the only thing you are requested to do is to just show up.

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…

Speaking at
SQLSaturday #413 Copenhagen

SQLSaturday_413_Copenhagen_DenmarkI 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!

SQL Server 2016 CTP 2
is here!


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:

  • Query Store
  • Hekaton v2
  • Huge improvements in the Columnstore technology
  • AlwaysON Availability Groups are now even better
  • Row Level Security
  • Polybase
  • Stretch Tables to Azure
  • Temporal data
  • Always Encrypted
  • JSON Support
  • Various improvements in the BI Stack

Enjoy! 😉

Speaking at Softuni Summer Conf 2015

SoftUni Summer Conf June 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!


Wanna Play with
SQL Server 2016?

SQL Server 2016 Virtual Labs
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.

Speaking at SQLSaturday #419, Bratislava


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!

In the meantime, you can find my slide deck below, all of the code that I used here and of course – some photos from both Bratislava and the event on this link!

HP. The Still Broken Company.

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…

  1. Why is HP trying to copy Apple so bad:
    • The designs of their products look similar(but are still really far away from Apple’s). Not only for this device.
    • The video itself is something that Apple is also doing in a similar and again better way.
    • Just because Apple announced a new keyboard for their device, it doesn’t mean HP must mention something about theirs(which turned out to be so bad that I am now writing that whole post)
  2. How can there be anyone from HP that thinks that saying that having a Num button is something revolutionary?
  3. Why is there no one from HP jumping into the conversation below the video where I and others are commenting this absurd? (Update – yesterday, someone did, but you can see for yourself their comment)
  4. When is HP going to find itself and do something that is not copied from anyone!? Microsoft did it with Surface. Lenovo is also being Lenovo with machines like Carbon.
  5. What needs to happen in order for HP to finally be able to create devices that have unique design (kind of related to the previous, but not the same). The latest products of HP (last 2 years) are just crap. Come on…!
  6. How can it be that HP’s products are most of the times more expensive than the ones of the competitors!?

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.

Multiple Emails in One SQL Agent Operator?

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 ‘;


Below are the results of me generating an event for which I have a SQL Agent Alert configured to notify the Operator above. Email_Alert_GMail


Cool, huh?

Let me know if it was just me that haven’t tested that till now. I am curious! :) 

Speaking at SQLSaturday #409, Rheinland, Germany

SQLSaturday_409_Rheinland_2015Last year I spoke at one of the local SQLSaturdays in Germany – the one in Rheinland and to be honest – I had great time(except for the “Business Hotel” – that was how the receptionist was calling it, which did not have Wi-Fi)! It’s 2015 already and I am pleased to share that on 13th of June, I will be visiting Germany for second time this year and I believe it’s obvious why – I will be one of the speakers at the 2015 edition of SQLSaturday Rheinland! I am going to be brave and speak about 2 topics(mixed together in one session) that Germany is quite serious about – security and the cloud, so I expect it to be a really interesting experience(don’t worry, DBAs, I am all with you on this, so don’t expect any marketing stuff!) and yeap, I am looking forward to it!

Update: Once again I really enjoyed being in Germany and speaking at this conference! It’s one of those events where you can’t only feel, but see that people have come to learn, ask and simply interact with both the speakers and their colleagues. My audience was a small group of 10 – 15 people, but they were so, so active – during and after the session. We spent around 20 more minutes after the session ended discussing Dynamic Data Masking and RLS in various scenarios and architectures. I cannot be happier…

My slides are below (and also on the SQLSaturday website) + the code that I used is here. And hey, here are some photos too! :)

Speaking about Presentation Skills at SoftUni


I love the Software University! This place is just one of my favourite places to speak and it’s not because of something else, but because of the students there! If you want to see motivated to succeed people, you just have to go and surround yourself with those guys! Now, I have already delivered some talks in SoftUni, but all of them were on SQL Server related topics. Last year I talked about what SQL Server is and then, earlier this year I crushed the course for Relational Databases with the advanced topics of transactional concurrency and performance tuning. All of those were REAAAALY highly rated –  you will be amazed by the feedback(only if you were able to read in Bulgarian…)!

On 21st of May at 19:00 I am again looking forward to seeing a full room of students! This time we decided I need to talk about how to deliver successful technical presentations because as Svetlin Nakov, who is the owner of the university, said to me at SoftUni Conf 2015 recently, it should not be us speaking and training the others after 10 years. We should teach the young guys to start taking over now! The seminar is opened for anyone, so even if you are not a student at SoftUni, but you are interested in the topic, come, learn, ask whatever interests you and why not say “Hi” after the presentation?

So… do you want to become trainer, speaker or probably both? Because if so, you have no excuses to not show up!

See you all there!

Update: No surprises. No surprises at all! Once again I had great time at SoftUni and I seriously believe the audience had such too. That was also one of the most interactive sessions I have delivered there and I am quite happy I saw around 50 – 60 people that want to learn more about how to deliver technical presentations. That’s a huge number if you think about it. Again – thanks to everyone who came and stayed even after the event ended to ask more questions! My slide deck and the video recording (in Bulgarian) is are below!

T-SQL Tuesday #66: Monitoring


T-SQL Tuesday is here once again and I need to be quick this time(I believe this is the second time I have to write a T-SQL Tuesday blog post in a 30 minute period). However, that does not mean that the message I am going to deliver to you is not important. It’s completely the opposite(or at least, I think so) and if I have to be honest, the post itself is not that technical. It’s more or less touching on the business side of supporting a service and should be read by IT managers and decision makers and not only by you, SQLFamily :) . Let me tell you what I mean… Read More