
Data Analyst 3
ComcastSenior Software Engineer
Customer Analytics, LLCSenior Software Engineer
KantarSoftware Engineer
KantarSenior Software Engineer
Customer Analytics India, Pvt. Ltd.
SQL

MySQL

Power BI

SSIS

Azure DevOps
Hi, I'm Hemalitha. I have around 5 years of experience in the database field with SQL and Power BI. In SQL, I was involved in the development part, like creating procedure functions and other SQL activities based on the requirement. My role will be to create one web page. So for that, I am giving the stored procedure to show the data for our web page. We are doing analysis of the product or product thing. I was also involved in Power BI reports, creating Power BI reports from the end to end process, like from gathering the business requirements to publishing the report. I was involved in that. Also, I was involved in automation to load the data in our destination table for data processing. Also, I utilized Python for data processing for some of the things. I started learning Azure things. And, I started leading the team with a small size of the company, the small size of the team. Yeah.
Okay, for complex queries that must join several tables and function efficiently. Yes. If I have multiple tables, I used several tables and functions. To reduce time, I will create an index for the required fields. So, what are the fields I have used in joins or in the where condition? I will make it as an index for the table. So, it will improve the performance. I will refer to that. Also, I have validated the data types of each column and the table. So, yeah. And, also, while joining, if I use an index column, I will use the index column instead of not using it. I will not use a function in the on condition. So, it will get the correct index. I need to use the actual column instead of using the column with any function, like data functions or something like that. I will make all the tables with a primary key to join them. And, mostly, I will try to avoid duplicate values when joining two tables. It will get the data easily. Like, it will not take more time. Yeah.
Okay, Conceptual data model, we have an idea, like, what are all the tables we have, what are all the columns, and what were the relationships and all. So, based on that, I will create a, each table with the primary key. What are the primary keys and foreign keys for that table? Also, with that, I can do the relations. So, what are the columns? What are the data types? While creating the table in a schema, I will make sure the table, the columns, need to be in the table with the respective data type and the respective indexes, unique keys, or any constraints. Also, I will make the different tables and make the relationships.
Slow running query. I will try to analyze the extinction plan for that query. So from the extinction plan, I can come to know and which part it will be getting slow. If any index is needed, it will recommend for us to create indexes. So I will book for that. Also, I will check the data types for those columns which are used in the table. It should be a corresponding value. Like, if it is a numeric column, it should be an integer or begin with something like that. It shouldn't be a backend issue. So I will make sure the respective data type for the respective columns, and I will improve the performance with the help of the exception plan if any index is needed or any other joins are needed or anything I can do with that, like the data type change, anything we can.
Scale injection attack. I'm not sure about the scale injection attack. Maybe I'm not sure exactly about the injection scale, but I think it may be like a deadlock and also the same process, same process, like the two resources trying to reach the data from the same table. So for that, I can go for the no lock keyword by selecting the thing.
I use transactions. The transaction I used is in the stored procedure. So it will be only success or failure. It will not include partial commits and all. So if it is successful, everything will be successful or otherwise, we can commit or roll back if any failure and all. I will use begin transaction and end transaction. So all my queries will be under the transaction. So it will be only success or failure, it will not include partial commits.
So if the users table has more data, when the condition is active is equal to 1, in the while loop, it always shows more than 0 only. In the delete, I will delete from this query, we are deleting only the top one row. So each time, it will delete only 1 row. Instead of that, I can give the condition to remove all the records based on the condition instead of doing only one row every time. If it is one row, it will be fine, it will work for only one time, but if it has 1 lakh or one pro record, every time it will delete and load. It is not always greater than 0. Like, not always. So most of the time, it always shows so we are instead of deleting only the top one, we can delete based on any other conditions.
Maybe I can go for an index on the order details table for the order ID column. So it will take the order ID parameter as a back condition. So, from the index, it can check easily. I think, yeah, we can create the index on the order ID.
How do you go about designing and database recovery strategy for mission critical systems? So, for designing part, I will gather all data, like what are all attributes, what are all entity attributes we need, what are all tables and what are all columns we want to create this application. Also, we need to make sure each one can relate with the relation key, like primary key for instance. Basically, we have some dimension tables, like a normalized database. We should not have any redundancy. So instead of loading all the data into one table, we can normalize. We can create multiple tables with the ID and the fields so that ID only we can use in that transactional table. So if you want any data from the transaction table, we can match it with one dimensional with ID, and we can get the other columns for that. We need to make sure we have a normalized design, we can use multiple tables instead of loading and updating in a same single table. Recovery strategy. Okay. Recovery. Maybe I can do weekly data restore. Database restore, I can do on a weekly basis. Or if it is not critical, I can go for even daily restores. So every day, I need to do database restore and backup of the tree, then I can delete. Like, today I will do today's restore. So tomorrow, I will delete today's and only keep tomorrow's. So if it is more critical, more transactional data each and every day, we need to make sure we can go for daily data database restore. Otherwise, we can go for weekly data store. So it will be useful.
When I was working on the Ferrero project, it had a large amount of transactional data that we received every day. To improve performance, we checked the defragmentation and found that it needed to be addressed. We then performed rebuilds or reindexing if necessary to improve it.
Process for testing and validating is best of our upgrade or purchase before the, upgrading production. Applied in production. Describe your process for testing and validating a skill server upgrades or patches before they are I'm not sure about this part of a skill server upgrading now. I'm interested to learn these things.