KEYSYS is pleased to announce Grant Woolwine as one of the newest members of TechBirmingham’s Board of Directors for 2018. TechBirmingham is geared up for an exciting year with new President & CEO, Deon Gordon, in addition to ten new members added to the Board. Board members are chosen from hundreds of Birmingham’s technology executives to be the voice of technology for the region, demonstrating the strength, diversity and economic impact of the technology companies and talent working in Birmingham.
“I am excited for the opportunity to work with Deon Gordon, board members, and the rest of the TechBirmingham team to expand technology opportunities in Birmingham and throughout the southeast,” said Woolwine.
The mission of TechBirmingham is to strengthen and promote the technology ecosystem by promoting local tech companies, helping to recruit and retain tech talent and entrepreneurs, and providing opportunities for technical training and education. This mission coincides well with the vision of KEYSYS as they are a locally sourced software company that has expanded their company supporting area businesses by building custom software that is efficient, scalable, secure, and affordable. They are also committed to acquiring talent that work locally out of their Birmingham office.
As the Director of Client Engagement, Mr. Woolwine, who joined the the team in 2013, is instrumental in the growth and success of KEYSYS. “I look forward to capitalizing on the momentum created by the previous TechBirmingham leadership team, and continuing to push to make Birmingham a destination for top quality technology talent and leaders” adds Woolwine.
A review of the schema showed that the same two tables were being joined to grab one piece of data for almost every query made on the database. To explain this data, we need to explain the application a little more. Of all the systems being brought together, one system has the identifier that is common for all of them. It was this identifier that required two table joins to get. While the database had been through a good round of database design including normalization, it was time to denormalize this field.
Denormalization is essentially putting a field on a table that could have been otherwise read or derived from existing tables. In this case, we already had a routine that was matching the main table with the reference to the tables with our field. So, this routine was modified to add the identifier to the main table at the time a record is associated. The risk in adding the identifier field is that the identifier could change in the source tables and that wouldn’t be reflected in the main table. In this case, the identifier cannot change. So, we had a good solution. We refactored the application to use the field from the main table.
Prior to making this change, we had performance tested the web application. After making the change, we ran the performance test again. Moving this single field, allowed 100% more users before any page loads averaged more than 3 seconds. It decreased our average page load time by 83%. Similarly, it decreased the worst 5% of our page load times by 86%.
While normalization is a good thing for a relational database, the results clearly show that sometimes you can be too normal. So the next time you have an application that could use a performance boost, don’t forget to think a little less normal.