Wednesday, August 12, 2009
Thursday, July 30, 2009
Oracle Interview Questions
What is an Oracle Instance?
2. What information is stored in Control File?
3. When you start an Oracle DB which file is accessed first?
4. What is the Job of SMON, PMON processes?
5. What is Instance Recovery?
6. What is written in Redo Log Files?
7. How do you control number of Datafiles one can have in an Oracle database?
8. How many Maximum Datafiles can there be in an Oracle Database?
9. What is a Tablespace?
10. What is the purpose of Redo Log files?
11. Which default Database roles are created when you create a Database?
12. What is a Checkpoint?
13. Which Process reads data from Datafiles?
14. Which Process writes data in Datafiles?
15. Can you make a Datafile auto extendible. If yes, how?
16. What is a Shared Pool?
17. What is kept in the Database Buffer Cache?
18. How many maximum Redo Logfiles one can have in a Database?
19. What is difference between PFile and SPFile?
20. What is PGA_AGGREGRATE_TARGET parameter?
21. Large Pool is used for what?
22. What is PCT Increase setting?
23. What is PCTFREE and PCTUSED Setting?
24. What is Row Migration and Row Chaining?
25. What is 01555 - Snapshot Too Old error and how do you avoid it?
26. What is a Locally Managed Tablespace?
27. Can you audit SELECT statements?
28. What does DBMS_FGA package do?
29. What is Cost Based Optimization?
30. How often you should collect statistics for a table?
31. How do you collect statistics for a table, schema and Database?
32. Can you make collection of Statistics for tables automatic?
33. On which columns you should create Indexes?
34. What type of Indexes are available in Oracle?
35. What is B-Tree Index?
36. A table is having few rows, should you create indexes on this table?
37. A Column is having many repeated values which type of index you should create on this column, if you have to?
38. When should you rebuilt indexes?
39. Can you built indexes online?
40. Can you see Execution Plan of a statement.
41. A table is created with the following setting
storage (initial 200k
next 200k
minextents 2
maxextents 100
pctincrease 40)
What will be size of 4th extent?
42. What is DB Buffer Cache Advisor?
43. What is STATSPACK tool?
44. Can you change SHARED_POOL_SIZE online?
45. Can you Redefine a table Online?
46. Can you assign Priority to users?
47. You want users to change their passwords every 2 months. How do you enforce this?
48. How do you delete duplicate rows in a table?
49. What is Automatic Management of Segment Space setting?
50. What is the difference between DELETE and TRUNCATE statements?
51. What is COMPRESS and CONSISTENT setting in EXPORT utility?
52. What is the difference between Direct Path and Convention Path loading?
53. Can you disable and enable Primary key?
54. What is an Index Organized Table?
55. What is a Global Index and Local Index?
56. What is the difference between Range Partitioning and Hash Partitioning?
57. What is difference between Multithreaded/Shared Server and Dedicated Server?
58. Can you import objects from Oracle ver. 7.3 to 9i?
59. How do you move tables from one tablespace to another tablespace?
60. How do see how much space is used and free in a tablespace?
2. What information is stored in Control File?
3. When you start an Oracle DB which file is accessed first?
4. What is the Job of SMON, PMON processes?
5. What is Instance Recovery?
6. What is written in Redo Log Files?
7. How do you control number of Datafiles one can have in an Oracle database?
8. How many Maximum Datafiles can there be in an Oracle Database?
9. What is a Tablespace?
10. What is the purpose of Redo Log files?
11. Which default Database roles are created when you create a Database?
12. What is a Checkpoint?
13. Which Process reads data from Datafiles?
14. Which Process writes data in Datafiles?
15. Can you make a Datafile auto extendible. If yes, how?
16. What is a Shared Pool?
17. What is kept in the Database Buffer Cache?
18. How many maximum Redo Logfiles one can have in a Database?
19. What is difference between PFile and SPFile?
20. What is PGA_AGGREGRATE_TARGET parameter?
21. Large Pool is used for what?
22. What is PCT Increase setting?
23. What is PCTFREE and PCTUSED Setting?
24. What is Row Migration and Row Chaining?
25. What is 01555 - Snapshot Too Old error and how do you avoid it?
26. What is a Locally Managed Tablespace?
27. Can you audit SELECT statements?
28. What does DBMS_FGA package do?
29. What is Cost Based Optimization?
30. How often you should collect statistics for a table?
31. How do you collect statistics for a table, schema and Database?
32. Can you make collection of Statistics for tables automatic?
33. On which columns you should create Indexes?
34. What type of Indexes are available in Oracle?
35. What is B-Tree Index?
36. A table is having few rows, should you create indexes on this table?
37. A Column is having many repeated values which type of index you should create on this column, if you have to?
38. When should you rebuilt indexes?
39. Can you built indexes online?
40. Can you see Execution Plan of a statement.
41. A table is created with the following setting
storage (initial 200k
next 200k
minextents 2
maxextents 100
pctincrease 40)
What will be size of 4th extent?
42. What is DB Buffer Cache Advisor?
43. What is STATSPACK tool?
44. Can you change SHARED_POOL_SIZE online?
45. Can you Redefine a table Online?
46. Can you assign Priority to users?
47. You want users to change their passwords every 2 months. How do you enforce this?
48. How do you delete duplicate rows in a table?
49. What is Automatic Management of Segment Space setting?
50. What is the difference between DELETE and TRUNCATE statements?
51. What is COMPRESS and CONSISTENT setting in EXPORT utility?
52. What is the difference between Direct Path and Convention Path loading?
53. Can you disable and enable Primary key?
54. What is an Index Organized Table?
55. What is a Global Index and Local Index?
56. What is the difference between Range Partitioning and Hash Partitioning?
57. What is difference between Multithreaded/Shared Server and Dedicated Server?
58. Can you import objects from Oracle ver. 7.3 to 9i?
59. How do you move tables from one tablespace to another tablespace?
60. How do see how much space is used and free in a tablespace?
C interview questions
1. What does static variable mean?
2. What is a pointer?
3. What is a structure?
4. What are the differences between structures and arrays?
5. In header files whether functions are declared or defined?
6. What are the differences between malloc() and calloc()?
7. What are macros? What are the advantages and disadvantages?
8. Difference between pass by reference and pass by value?
9. What is static identifier?
10. Where are the auto variables stored?
11. Where does global, static, local, register variables, free memory and C Program instructions get stored?
12. Difference between arrays and linked list?
13. What are enumerations?
14. Describe about storage allocation and scope of global, extern, static, local and register variables?
15. What are register variables? What are the advantage of using register variables?
16. What is the use of typedef?
17. Can we specify variable field width in a scanf() format string? If possible how?
18. Out of fgets() and gets() which function is safe to use and why?
19. Difference between strdup and strcpy?
20. What is recursion?
21. Differentiate between a for loop and a while loop? What are it uses?
22. What are the different storage classes in C?
23. Write down the equivalent pointer expression for referring the same element a[i][j][k][l]?
24. What is difference between Structure and Unions?
25. What the advantages of using Unions?
26. What are the advantages of using pointers in a program?
27. What is the difference between Strings and Arrays?
28. In a header file whether functions are declared or defined?
29. What is a far pointer? where we use it?
30. How will you declare an array of three function pointers where each function receives two ints and returns a float?
31. What is a NULL Pointer? Whether it is same as an uninitialized pointer?
32. What is a NULL Macro? What is the difference between a NULL Pointer and a NULL Macro?
33. What does the error ‘Null Pointer Assignment’ mean and what causes this error?
34. What is near, far and huge pointers? How many bytes are occupied by them?
35. How would you obtain segment and offset addresses from a far address of a memory location?
36. Are the expressions arr and *arr same for an array of integers?
37. Does mentioning the array name gives the base address in all the contexts?
38. Explain one method to process an entire string as one unit?
39. What is the similarity between a Structure, Union and enumeration?
40. Can a Structure contain a Pointer to itself?
41. How can we check whether the contents of two structure variables are same or not?
42. How are Structure passing and returning implemented by the complier?
43. How can we read/write Structures from/to data files?
44. What is the difference between an enumeration and a set of pre-processor # defines?
45. What do the ‘c’ and ‘v’ in argc and argv stand for?
46. Are the variables argc and argv are local to main?
47. What is the maximum combined length of command line arguments including the space between adjacent arguments?
48. If we want that any wildcard characters in the command line arguments should be appropriately expanded, are we required to make any special provision? If yes, which?
49. Does there exist any way to make the command line arguments available to other functions without passing them as arguments to the function?
50. What are bit fields? What is the use of bit fields in a Structure declaration?
51. To which numbering system can the binary number 1101100100111100 be easily converted to?
52. Which bit wise operator is suitable for checking whether a particular bit is on or off?
53. Which bit wise operator is suitable for turning off a particular bit in a number?
54. Which bit wise operator is suitable for putting on a particular bit in a number?
55. Which bit wise operator is suitable for checking whether a particular bit is on or off?
56. Which one is equivalent to multiplying by 2?
* Left shifting a number by 1
* Left shifting an unsigned int or char by 1?
57. Write a program to compare two strings without using the strcmp() function.
58. Write a program to concatenate two strings.
59. Write a program to interchange 2 variables without using the third one.
60. Write programs for String Reversal. The same for Palindrome check.
61. Write a program to find the Factorial of a number.
62. Write a program to generate the Fibonacci Series?
63. Write a program which employs Recursion?
64. Write a program which uses command line arguments.
65. Write a program which uses functions like strcmp(), strcpy(), etc.
66. What are the advantages of using typedef in a program?
67. How would you dynamically allocate a one-dimensional and two-dimensional array of integers?
68. How can you increase the size of a dynamically allocated array?
69. How can you increase the size of a statically allocated array?
70. When reallocating memory if any other pointers point into the same piece of memory do you have to readjust these other pointers or do they get readjusted automatically?
71. Which function should be used to free the memory allocated by calloc()?
72. How much maximum can you allocate in a single call to malloc()?
73. Can you dynamically allocate arrays in expanded memory?
74. What is object file? How can you access object file?
75. Which header file should you include if you are to develop a function which can accept variable number of arguments?
76. Can you write a function similar to printf()?
77. How can a called function determine the number of arguments that have been passed to it?
78. Can there be at least some solution to determine the number of arguments passed to a variable argument list function?
79. How do you declare the following:
* An array of three pointers to chars
* An array of three char pointers
* A pointer to array of three chars
* A pointer to function which receives an int pointer and returns a float pointer
* A pointer to a function which receives nothing and returns nothing
80. What do the functions atoi(), itoa() and gcvt() do?
81. Does there exist any other function which can be used to convert an integer or a float to a string?
82. How would you use qsort() function to sort an array of structures?
83. How would you use qsort() function to sort the name stored in an array of pointers to string?
84. How would you use bsearch() function to search a name stored in array of pointers to string?
85. How would you use the functions sin(), pow(), sqrt()?
86. How would you use the functions memcpy(), memset(), memmove()?
87. How would you use the functions fseek(), freed(), fwrite() and ftell()?
88. How would you obtain the current time and difference between two times?
89. How would you use the functions randomize() and random()?
90. How would you implement a substr() function that extracts a sub string from a given string?
91. What is the difference between the functions rand(), random(), srand() and randomize()?
92. What is the difference between the functions memmove() and memcpy()?
93. How do you print a string on the printer?
94. Can you use the function fprintf() to display the output on the screen?
95. Gautam Pagedar adds this question: What is a linklist and why do we use it when we have arrays? - I feel the correct answer should be linklist is used in cases where you don’t know the memory required to store a data structure and need to allocate is dynamically on demand.
96. How do you detect a loop in linked list?
97. Sunil asks: What is the difference between main() in C and main() in C++?
98. ajz at his interviews asks what will be printed out when the following code is executed:
main()
{
printf("%x",-1<<4);
}
Saturday, July 4, 2009
Interview questions for ASE DBAs
This page contains some suggestions for questions to ask when interviewing an applicant for a Sybase ASE DBA job. There are also some questions the candidate might want to ask before (s)he takes the job (see the end of this page).
Please bear in mind that these are just some suggestions which I personally think are relevant. I'm certainly not claiming that these are the "best" or "most representative" questions you could ask. You could use these as a starting point and add further questions of your own.
The questions are listed here. They are repeated, with answers, below. At the bottom of this page, there are also some questions for a candidate DBA to ask a potential future employer.
What are the most important DBA tasks?
What should you do when you find a stacktrace in the server errorlog?
Is there any disadvantage of splitting up your application data into a number of different databases?
Is it necessary to drop & recreate all procedures and triggers every few months?
What are the main advantages and disadvantages of using identity columns?
What do you do when the server can't start due to a corrupt master database?
When you do a BCP-in from a file to a table, what happens to triggers, constraints, rules and defaults on that table?
How do you BCP only a certain set of rows out of a large table?
What's the difference between managing permissions through users and groups or through user-defined roles?
Is there any advantage in using the 64-bit version of ASE instead of the 32-bit version?
Is it a good idea to use datarows locking for all tables by default?
What would you do when the ASE server's performance is bad?
What do you do when a segment gets full?
Are timestamp columns good candidates for primary keys? (since they're always unique for a row)
Does the DBA candidate hold a Sybase Certification?
Questions to ask a candidate DBA
What are the most important DBA tasks ?
In my opinion, these are (in order of importance): (i) ensure a proper database/log dump schedule for all databases (including master); (ii) run dbcc checkstorage on all databases regularly (at least weekly), and follow up any corruption problems found; (iii) run update [index] statistics at least weekly on all user tables; (iv) monitor the server errorlog for messages indicating problems (daily). Of course, a DBA has many other things to do as well, such as supporting users & developers, monitor performance, etc.
What should you do when you find a stacktrace in the server errorlog
Open a case with Sybase TechSupport. There's not much you can do yourself with this information, and only TechSupport has the information to determine whether it's related to a bug, for example. It's not a good idea to ignore such things in the errorlog -- 'cos it might indeed indicate you're hitting a bug.
Is there any disadvantage of splitting up your application data into a number of different databases ?
When there are relations between tables/objects across the different databases, then there is a disadvantage indeed: if you would restore a dump of one of the databases, those relations may not be consistent anymore. This means that you should always back up a consistent set of databases; however, this may be difficult when the system is continuously in use, because a single database is the unit of backup/restore. Therefore, when making this kind of design decision, backup/restore issues should be considered (and the DBA should be consulted).
Is it necessary to drop & recreate all procedures and triggers every few months ?
No; in older Sybase versions (4.x), this was sometimes necessary, as query plans could grow bigger over time, hit an upper limit at some point and cause an error. Both the growing plan and the limit have been removed since at least version 11.0 (or was it already fixed in 10 ? -- I'm not sure...).
What are the main advantages and disadvantages of using identity columns ?
The main advantage of an identity column is that it can generate unique, sequential numbers very efficiently, requiring only a minimal amount of I/O. The disadvantage is that the generated values themselves are not transactional, and that the identity values may jump enourmously when the server is shut down the rough way (resulting in "identity gaps"). You should therefore only use identity columns in applications if you've adressed these issues (go here for more information about identity gaps).
What do you do when the server can't start due to a corrupt master database ?
You create a new master device using buildmaster (on 12.5, use dataserver instead); create a RUN_SERVER file and start the server in single-user mode (using the -m option); then manually add an entry for SYB_BACKUP in sysservers; and then load a database dump of the master database. After that, the server will automatically shut down; restart it and see if your application databases are still there.
To turn up the heat a bit: what if you're using a non-default character set or sort order ?
In this case, things are more complicated: you'll first need to create sybsystemprocs and change the sort order/charset of newly created master database before loading the master database dump (thanks to John Langston for this one).
When you do a BCP-in from a file to a table, what happens to triggers, constraints, rules and defaults on that table ?
For both fast BCP and 'normal' BCP, triggers, constraints and rules are ignored. Defaults will be effective though (go here for a nasty, but little-known side effect).
How do you BCP only a certain set of rows out of a large table ?
If you're in ASE 11.5 or later, create a view for those rows and BCP out from the view. In earlier ASE versions, you'll have to select those rows into a separate table first and BCP out from that table. In both cases, the speed of copying the data depends on whether there is a suitable index for retrieving the rows.
What's the difference between managing permissions through users and groups or through user-defined roles ?
The main difference is that user-defined roles (introduced in ASE 11.5) are server-wide, and are granted to logins. Users and groups (the classic method that has always been there since the first version of Sybase) are limited to a single database. Permissions can be granted/revoked to both user-defined roles and users/groups. Whichever method you choose, don't mix 'm, as the precedence rules are complicated.
Is there any advantage in using the 64-bit version of ASE instead of the 32-bit version ?
The only difference is that the 64-bit version of ASE can handle a larger data cache than the 32-bit version, so you'd optimize on physical I/O. Therefore, this may be an advantage if the amount of data cache is currently a bottleneck. There's no point in using 64-bit ASE with the same amount of "total memory" as for the 32-bit version, because 64-bit ASE comes with an additional overhead in memory usage -- so the net amount of data cache would actually be less for 64-bit than for 32-bit in this case.
(Just for clarity: the 64-bit version is not twice as fast as the 32-bit version, and does not perform its I/O at double the size of the 32-bit version (I once heard someone state these as facts...)).
Is it a good idea to use datarows locking for all tables by default ?
Not by default; only if you're having concurrency (locking) problems on a table, and you're not locking many rows of a table in a single transaction, then you could consider datarows locking for that table. In all other cases, use either datapages or allpages locking.
(I personally favor datapages locking as the default lock scheme for all tables because switching to datarows locking is fast and easy, whereas for allpages locking, the entire table has to be converted which may take long for large tables. Also, datapages locking has other advantages over allpages, such as not locking index pages, update statistics running at level 0, and the availability of the reorg command).
What would you do when the ASE server's performance is bad ?
"Bad performance" is not a very meaningful term, so you'll need to get a more objective diagnosis first. Find out (i) what such a complaint is based on (clearly increasing response times or just a "feeling" that it's slower?), (ii) for which applications/queries/users this seems to be happening, and (iii) whether it happens continuously or just incidentally. Without identifying the specific, reproducable problem, any action is no better than speculation.
What do you do when a segment gets full ?
Wrong: a segment can never get full (even though some error messages state something to that extent). A segment is a "label" for one or more database device fragments; the fragments to which that label has been mapped can get full, but the segments themselves cannot. (Well, OK, this is a bit of a trick question... when those device fragments full up, you either add more space, or clean up old/redundant data.)
Are timestamp columns good candidates for primary keys? (since they're always unique for a row)
Absolutely not, this would be a bad thing to do; timestamp columns are actually a bit too unique to be used as a primary key. For details, see the quiz question for August 2004.
Does the DBA candidate hold a Sybase Certification ?
If (s)he has, consider that a plus !
Questions for a candidate DBA to ask your potential future employer
When you're being interviewed for a DBA vacancy, there are some things related to the DBA environment you might want to know as well. I'd suggest to check out at least the following:
Does the company have a Technical Support contract with Sybase ?
A support contract is required for getting EBFs and for being able to ask questions about technical problems. Without a support contract, you're completely on your own; you should ask yourself if your can fulfill the company's expectations in that case.
Which version of ASE are they using, and on which platform ?
This matters: for example, if they appear to be running 11.0.3 on Data General, find out if they are aware that both this ASE version and this platform are no longer supported by Sybase. If they're not planning to upgrade to a supported version/platform soon, ask yourself if you want to be working there; you risk being on your own, without support, and with an out-of-date ASE version that stops you from keeping your ASE knowledge current.
How many servers, database and concurrent users do they have ? What's the database size like ? Is there a 24*7 uptime requirement ?
It helps to know which scale you're talking about. If you're supposed to look after a 500 Gb, never-no-downtime, 3000-user system, check whether the salary you're being offered is of the same magnitude as the system.
Is Sybase Replication Server involved ?
If it is, and if you know RepServer, reconsider your financial demands -- upwards, that is. Reason is that RepServer DBAs are hard to find -- much harder than ASE DBAs.
Are you also supposed to take care of their Oracle, MS-SQL, etc. servers ? Do you have to manage ASIQ or ASA (SQLAnywhere) as well ?
You may want to know this in advance rather than find out on your first working day....
If you want to get a Sybase certification (or get a more recent one) will they pay for this ?
It should make 'm happy that you're willing to get your certification, 'cos it will make you a better DBA; try to get them to pay for at least part of it. Tip: if you're talking to a management person, calling this a "win-win scenario" might help....
Please bear in mind that these are just some suggestions which I personally think are relevant. I'm certainly not claiming that these are the "best" or "most representative" questions you could ask. You could use these as a starting point and add further questions of your own.
The questions are listed here. They are repeated, with answers, below. At the bottom of this page, there are also some questions for a candidate DBA to ask a potential future employer.
What are the most important DBA tasks?
What should you do when you find a stacktrace in the server errorlog?
Is there any disadvantage of splitting up your application data into a number of different databases?
Is it necessary to drop & recreate all procedures and triggers every few months?
What are the main advantages and disadvantages of using identity columns?
What do you do when the server can't start due to a corrupt master database?
When you do a BCP-in from a file to a table, what happens to triggers, constraints, rules and defaults on that table?
How do you BCP only a certain set of rows out of a large table?
What's the difference between managing permissions through users and groups or through user-defined roles?
Is there any advantage in using the 64-bit version of ASE instead of the 32-bit version?
Is it a good idea to use datarows locking for all tables by default?
What would you do when the ASE server's performance is bad?
What do you do when a segment gets full?
Are timestamp columns good candidates for primary keys? (since they're always unique for a row)
Does the DBA candidate hold a Sybase Certification?
Questions to ask a candidate DBA
What are the most important DBA tasks ?
In my opinion, these are (in order of importance): (i) ensure a proper database/log dump schedule for all databases (including master); (ii) run dbcc checkstorage on all databases regularly (at least weekly), and follow up any corruption problems found; (iii) run update [index] statistics at least weekly on all user tables; (iv) monitor the server errorlog for messages indicating problems (daily). Of course, a DBA has many other things to do as well, such as supporting users & developers, monitor performance, etc.
What should you do when you find a stacktrace in the server errorlog
Open a case with Sybase TechSupport. There's not much you can do yourself with this information, and only TechSupport has the information to determine whether it's related to a bug, for example. It's not a good idea to ignore such things in the errorlog -- 'cos it might indeed indicate you're hitting a bug.
Is there any disadvantage of splitting up your application data into a number of different databases ?
When there are relations between tables/objects across the different databases, then there is a disadvantage indeed: if you would restore a dump of one of the databases, those relations may not be consistent anymore. This means that you should always back up a consistent set of databases; however, this may be difficult when the system is continuously in use, because a single database is the unit of backup/restore. Therefore, when making this kind of design decision, backup/restore issues should be considered (and the DBA should be consulted).
Is it necessary to drop & recreate all procedures and triggers every few months ?
No; in older Sybase versions (4.x), this was sometimes necessary, as query plans could grow bigger over time, hit an upper limit at some point and cause an error. Both the growing plan and the limit have been removed since at least version 11.0 (or was it already fixed in 10 ? -- I'm not sure...).
What are the main advantages and disadvantages of using identity columns ?
The main advantage of an identity column is that it can generate unique, sequential numbers very efficiently, requiring only a minimal amount of I/O. The disadvantage is that the generated values themselves are not transactional, and that the identity values may jump enourmously when the server is shut down the rough way (resulting in "identity gaps"). You should therefore only use identity columns in applications if you've adressed these issues (go here for more information about identity gaps).
What do you do when the server can't start due to a corrupt master database ?
You create a new master device using buildmaster (on 12.5, use dataserver instead); create a RUN_SERVER file and start the server in single-user mode (using the -m option); then manually add an entry for SYB_BACKUP in sysservers; and then load a database dump of the master database. After that, the server will automatically shut down; restart it and see if your application databases are still there.
To turn up the heat a bit: what if you're using a non-default character set or sort order ?
In this case, things are more complicated: you'll first need to create sybsystemprocs and change the sort order/charset of newly created master database before loading the master database dump (thanks to John Langston for this one).
When you do a BCP-in from a file to a table, what happens to triggers, constraints, rules and defaults on that table ?
For both fast BCP and 'normal' BCP, triggers, constraints and rules are ignored. Defaults will be effective though (go here for a nasty, but little-known side effect).
How do you BCP only a certain set of rows out of a large table ?
If you're in ASE 11.5 or later, create a view for those rows and BCP out from the view. In earlier ASE versions, you'll have to select those rows into a separate table first and BCP out from that table. In both cases, the speed of copying the data depends on whether there is a suitable index for retrieving the rows.
What's the difference between managing permissions through users and groups or through user-defined roles ?
The main difference is that user-defined roles (introduced in ASE 11.5) are server-wide, and are granted to logins. Users and groups (the classic method that has always been there since the first version of Sybase) are limited to a single database. Permissions can be granted/revoked to both user-defined roles and users/groups. Whichever method you choose, don't mix 'm, as the precedence rules are complicated.
Is there any advantage in using the 64-bit version of ASE instead of the 32-bit version ?
The only difference is that the 64-bit version of ASE can handle a larger data cache than the 32-bit version, so you'd optimize on physical I/O. Therefore, this may be an advantage if the amount of data cache is currently a bottleneck. There's no point in using 64-bit ASE with the same amount of "total memory" as for the 32-bit version, because 64-bit ASE comes with an additional overhead in memory usage -- so the net amount of data cache would actually be less for 64-bit than for 32-bit in this case.
(Just for clarity: the 64-bit version is not twice as fast as the 32-bit version, and does not perform its I/O at double the size of the 32-bit version (I once heard someone state these as facts...)).
Is it a good idea to use datarows locking for all tables by default ?
Not by default; only if you're having concurrency (locking) problems on a table, and you're not locking many rows of a table in a single transaction, then you could consider datarows locking for that table. In all other cases, use either datapages or allpages locking.
(I personally favor datapages locking as the default lock scheme for all tables because switching to datarows locking is fast and easy, whereas for allpages locking, the entire table has to be converted which may take long for large tables. Also, datapages locking has other advantages over allpages, such as not locking index pages, update statistics running at level 0, and the availability of the reorg command).
What would you do when the ASE server's performance is bad ?
"Bad performance" is not a very meaningful term, so you'll need to get a more objective diagnosis first. Find out (i) what such a complaint is based on (clearly increasing response times or just a "feeling" that it's slower?), (ii) for which applications/queries/users this seems to be happening, and (iii) whether it happens continuously or just incidentally. Without identifying the specific, reproducable problem, any action is no better than speculation.
What do you do when a segment gets full ?
Wrong: a segment can never get full (even though some error messages state something to that extent). A segment is a "label" for one or more database device fragments; the fragments to which that label has been mapped can get full, but the segments themselves cannot. (Well, OK, this is a bit of a trick question... when those device fragments full up, you either add more space, or clean up old/redundant data.)
Are timestamp columns good candidates for primary keys? (since they're always unique for a row)
Absolutely not, this would be a bad thing to do; timestamp columns are actually a bit too unique to be used as a primary key. For details, see the quiz question for August 2004.
Does the DBA candidate hold a Sybase Certification ?
If (s)he has, consider that a plus !
Questions for a candidate DBA to ask your potential future employer
When you're being interviewed for a DBA vacancy, there are some things related to the DBA environment you might want to know as well. I'd suggest to check out at least the following:
Does the company have a Technical Support contract with Sybase ?
A support contract is required for getting EBFs and for being able to ask questions about technical problems. Without a support contract, you're completely on your own; you should ask yourself if your can fulfill the company's expectations in that case.
Which version of ASE are they using, and on which platform ?
This matters: for example, if they appear to be running 11.0.3 on Data General, find out if they are aware that both this ASE version and this platform are no longer supported by Sybase. If they're not planning to upgrade to a supported version/platform soon, ask yourself if you want to be working there; you risk being on your own, without support, and with an out-of-date ASE version that stops you from keeping your ASE knowledge current.
How many servers, database and concurrent users do they have ? What's the database size like ? Is there a 24*7 uptime requirement ?
It helps to know which scale you're talking about. If you're supposed to look after a 500 Gb, never-no-downtime, 3000-user system, check whether the salary you're being offered is of the same magnitude as the system.
Is Sybase Replication Server involved ?
If it is, and if you know RepServer, reconsider your financial demands -- upwards, that is. Reason is that RepServer DBAs are hard to find -- much harder than ASE DBAs.
Are you also supposed to take care of their Oracle, MS-SQL, etc. servers ? Do you have to manage ASIQ or ASA (SQLAnywhere) as well ?
You may want to know this in advance rather than find out on your first working day....
If you want to get a Sybase certification (or get a more recent one) will they pay for this ?
It should make 'm happy that you're willing to get your certification, 'cos it will make you a better DBA; try to get them to pay for at least part of it. Tip: if you're talking to a management person, calling this a "win-win scenario" might help....
INTERVIEWING TIPS & TRICKS
Interview discussion. Interview discussions can be boring and meaningless. A candidate can experience a live, regurgitation of the job description listed in the local paper rather than a meaningful conversation of what is expected of him or her. Take this opportunity (or any other) to discuss new procedures you wish to implement to increase the company's bottom line and productivity. Use dollars, percentages, and cents (sense). In today's age, nearly anyone can do a job, but can they produce results?
Never make negative comments about former employers. No matter how tempting it is to want to notify the world about the awful business practices of a previous employer; DON'T DO IT. Remember, stay professional, don't resort to mud slinging.
Are there some interview questions I should be concerned about? There are several interview questions that aren't illegal, but may lead to answers that cause the hiring manager to make an illegal decision. These include: a) number of dependents b) do you have a sitter c) are you married d) how much do you weigh e) religion? Obviously, a hiring manager does not purposely break the law (at least we hope not), so give them the benefit of the doubt if asked anything you feel is inappropriate. Kindly, indicate to them you are uncomfortable with the question and decline to answer.
Bring up salary or benefits in the first interview? In today's world, we believe this is a passing phase. Virtually, our entire lives are beginning to evolve around one question, "How much?" If they bring it up first, then go for it. A simple rule to follow when you are presented with an amount is to ask, "Is this amount set in stone or is it negotiable?" If the amount is non-negotiable, take enough time to think about it (especially if it is lower than your previous salary). Rather, if the amount is negotiable, we recommend taking your time, before giving them an amount you may not be able to revise later.
What if I complete the entire interview and salary is not mentioned at all! This is not likely to occur, however, if it does, simply inquire at the end (if you feel it is appropriate) or continue to wait until the company provides an offer.
Is there a key or map to interviewing? Keep in mind, every hiring manager has different interviewing skills and tactics. You may interview with a highly structured manager that will ask every official question, or you may have someone that just called you in to chat to see if your personality will "click" with the rest of the staff.
When the interviewer says, "Do you have any questions?" Do you automatically say no?
Try these:
a) Is there room for advancement?
b) Will I be required to work overtime?
c) Who will be my immediate supervisor and manager?
d) Where do you see the company in the next five (5) years? ten (10) years?
e) After an adjustment period, can I take on additional learning opportunities and/or duties to expand my working knowledge of the business?
Send a follow-up letter (AKA thank you letter). A large percentage don't even give a follow-up (after interview) letter a second thought. This letter can serve key functions: a) make the interviewer sway in your direction when they are torn in selecting a candidate b) notifying them of your courteous, thoughtful demure which can aid you in salary and benefit negotiations.
Never make negative comments about former employers. No matter how tempting it is to want to notify the world about the awful business practices of a previous employer; DON'T DO IT. Remember, stay professional, don't resort to mud slinging.
Are there some interview questions I should be concerned about? There are several interview questions that aren't illegal, but may lead to answers that cause the hiring manager to make an illegal decision. These include: a) number of dependents b) do you have a sitter c) are you married d) how much do you weigh e) religion? Obviously, a hiring manager does not purposely break the law (at least we hope not), so give them the benefit of the doubt if asked anything you feel is inappropriate. Kindly, indicate to them you are uncomfortable with the question and decline to answer.
Bring up salary or benefits in the first interview? In today's world, we believe this is a passing phase. Virtually, our entire lives are beginning to evolve around one question, "How much?" If they bring it up first, then go for it. A simple rule to follow when you are presented with an amount is to ask, "Is this amount set in stone or is it negotiable?" If the amount is non-negotiable, take enough time to think about it (especially if it is lower than your previous salary). Rather, if the amount is negotiable, we recommend taking your time, before giving them an amount you may not be able to revise later.
What if I complete the entire interview and salary is not mentioned at all! This is not likely to occur, however, if it does, simply inquire at the end (if you feel it is appropriate) or continue to wait until the company provides an offer.
Is there a key or map to interviewing? Keep in mind, every hiring manager has different interviewing skills and tactics. You may interview with a highly structured manager that will ask every official question, or you may have someone that just called you in to chat to see if your personality will "click" with the rest of the staff.
When the interviewer says, "Do you have any questions?" Do you automatically say no?
Try these:
a) Is there room for advancement?
b) Will I be required to work overtime?
c) Who will be my immediate supervisor and manager?
d) Where do you see the company in the next five (5) years? ten (10) years?
e) After an adjustment period, can I take on additional learning opportunities and/or duties to expand my working knowledge of the business?
Send a follow-up letter (AKA thank you letter). A large percentage don't even give a follow-up (after interview) letter a second thought. This letter can serve key functions: a) make the interviewer sway in your direction when they are torn in selecting a candidate b) notifying them of your courteous, thoughtful demure which can aid you in salary and benefit negotiations.
Subscribe to:
Posts (Atom)