Our Services
COVID-19: Typically we try to accommodate your needs as much as possible, whether that be working on-site or remotely, however during the current coronavirus (COVID-19) crisis, to protect us and our clients, we will be working remotely.
Performance Tuning:
To some, database performance is a never-ending struggle, to others, databases are not even on the radar until performance starts to drop. Either way, every SQL instance needs some maintenance from time to time. This is natural, as a business grows, so does its data, and as data grows, what once worked well in a database may no longer be as efficient as it once was. Performance problems can be difficult to isolate, and even more difficult to fix; in these situations, we’re here to help, and we always follow best-practice. We can help pinpoint areas of concern, and then work to improve them, providing a more tailored approach than an out-the-box solution could ever achieve. We will utilise any Dev / QAT / UAT environments that you have available, and work on everything and anything that may improve performance. This includes all aspects of SQL Server:
- The machine hosting SQL Server – we can review and tune a variety of O/S level configurations that can improve database performance
- Instance configuration options – The general advice with SQL instance settings is to leave them alone unless you understand exactly what they do, and how a change could affect the system. We can quickly run through all instance level options, from trace-flags to processor affinity, maximum degree or parallelism to the correct file layout of TempDB. Settings that sometimes appear small and insignificant can have an almost profound affect on a SQL instance.
- Databases – Unsure what collation you need? Or whether auto-updating statistics is a good idea? Want to use Query Store but unsure of the implications? Let us guide you through it, or configure it all for you!
- Schemas – A schema is the structural layout of objects within a database, so a well-designed schema is the foundation of a well designed database. This is an area that should be carefully built with a lot of forethought, as it can be fundamental to a fast system and is usually very difficult to change once an application is already using it. We can design the schema from the ground up, or we can do the difficult leg-work to improve an already built, but poorly-performing schema. This would involve restructuring tables, joins, and re-writing stored procedures, functions, etc. to make proper use of the new schema design.
- Indexes – Indexes allow data to be read as quickly as possible, rather than searching a large table row-by-row, an index allows it to be split into ordered sections so that the query can go straight to the row it needs. This is often the most confusing part of a database for people. A well designed index can massively improve performance, however a poorly designed one can have dire consequences for a database. We can isolate and remove underused or poorly designed indexes that are slowing a system down, and replace (or create new) indexes that work efficiently and improve not only the query using it, but the system as a whole.
- Stored Procedures (SPs) – These contain the actual queries that read and write to a database; some people will write queries directly into an application rather than using SPs, however this is usually frowned upon as it can be very difficult to identify and debug issues, and any changes frequently require recompiling code; SPs keep queries contained within the database, making it far easier to identify problems and make changes on the fly, they are usually also far more efficient from a performance perspective. We can help you to design, build, modify, or rewrite SPs using the most logical and efficient approach. We like to leave detailed comments and change-logs so that future maintenance does not cause unnecessary headaches.
- Functions – Functions are used by queries to provide re-usable sections of code at a granular level, they can also provide extra functionality that would not be possible with a simple query or a stored procedure. Sometimes they get over-used, which can cause problems, but frequently they can help reduce complexity in scripts. Knowing when and how to use them is part of the challenge, and this is where SQL Engine comes in. We can design and build new functions, or optimise pre-existing ones; we can also help your guide your developers on when and where to use, and when to avoid them.
- Automated Jobs – Jobs handle anything in the SQL instance that should be automated and on a schedule. We can help optimise your jobs, providing email notifications if any problems should arise.
Migrations:
We can migrate your SQL Server instances to different hardware, whether that be on-premises/on-site, data centre physical machines or VMs, and AWS cloud migrations … or any combination of the above.
Thorough analysis is always carried out beforehand to ensure all technologies currently in use are migrated efficiently and with minimal downtime, during a window that works with your business.
If you have a development or UAT environment, we’ll dry-run the migration there first, this provides assurances of how smoothly the migration will go, or help to highlight any potential pitfalls.
Migrations are often a good time to tune up other processes too, for example devising a new and improved backup strategy to make optimal use of the new hardware, whilst maintaining your RPO/RTO. We can work to your spec, or we can offer professional advice based on years of experience of what works well, and what doesn’t.
Upgrades & Updates:
Keeping your systems up to date is essential for multiple reasons:
- Improving and adding features
- Improving performance
- Extending your support window with Microsoft
- Keeping your data secure and operating at its best
…so don’t leave it until a data breach occurs, or you fall out of the support window, get in touch and we’ll have you up to date and secure in no time.
We can install and perform version upgrades, service packs, and cumulative updates to SQL Server, and also any accompanying components like SSIS, SSRS, and SSAS, using whichever method you prefer:
- In-place
- Rolling
- Migration
Database Design / Architecture:
We can add new features to a pre-existing system, or we can build a new system from scratch. If it can be written in T-SQL, we can build it, and we can build it well. With over a decade of experience, normalisation comes second nature, so schema design need-not be a cause of contention, let us handle the hard parts, or the entire project.
Reports:
We can build and optimise T-SQL based reports, or SP based reports for use by your developers in other applications, like SSRS. These could be anything from financial reports to show where and when to optimise other parts of the business, to diagnostics reports to highlight bottlenecks and areas of concern in the database, as they happen. These can be tied directly into Excel as ‘live’ reports for easy logging and manipulation, in an email presented in HTML for quick reference from your mobile phone, or even as a csv attachment. SQL Server is flexible, so are we.
Let’s talk
If you need help or support with any of the above, or anything else, please let us know; if it’s SQL Server related, we can help, get in touch today.
Do you need to hire an expert SQL Sever Database Administrator?
Whether working onsite with you, or remotely, we can help your business