Deadlock неге пайда болады? Екі транзакцияның қиыстырылған жабылуы (deadlock) әр түрлі реттегі сол бір жазбалардың өзгеруінде пайда болады.
Қиылған жабылуға әкелетін әрекеттер:
1.транзакция А, Х жазбасын өзгертеді. Х жабылды.
2.транзакция В, У жазбасын өзгертеді. У жабылған.
3.транзакция А, У жазбасын өзгертуге тырысады. А тоқтатылған.
4.транзакция В, Х жазбасын өзгертуге тырысады. В тоқтатылған.
Сервер сәйкес келетін қосылысқа қайта отырып, қиылған жабылуды анықтайды және транзакциянылардың біреуін қайта жасайды. Қолданушыға қатені шығармау үшін сынған қосылыс транзакцияны үндемей қосу керек.
Индекстер не үшін қажет?Мәліметтерді таңдау операциясын жылдамдату үшін. Бедгілі бір маңызы бар бағаналарды іздегенде сервер-кестеде барлық жазбаларды қарастыруға тура келеді. Бұл жағдайда іздеу уақыты сызықты түрде кесте көлеміне тәуелдіболады.
Әдетте бинарлы ағашты көрсететін бағана бойынша индекс бұл тәуелділікті логарифмдікке айналдыра отырып, іздеу уақытын күрт қысқартатын мүмкіндігін береді. Алайда кестедегі индекстердіңғ болуы мәліметтер модификация операциясын ақырындатады.
Кестеде бірінші ретті кілт не үшін қажет?Бірінші ретті кілт (РК) – бағаналар немесе бағаналар жиыны, олардың құрамы кестеде жазбаны бір уақытта анықтайды, оларды бір-бірінін айырады. Жазбалардың бір мәнді идентификациясы үшін арналған және кестеде тек біреуі ғана бола алады.
Әдетте бірінші ретті кілтті анықтау үшін автоматты түрде ерекше индекс жасалады.
Триггер деген не? Триггер-кестеде мәліметтерді модификациялауда сервермен автоматты түрде орындалатын процедура. Негізінен, триггерлер денормализацияланған МБ-да қайталанатын ақпараттың бүтіндігін қолдау үшін қолданалады.
Өз функциянды SQL-серверде қолдануға бола ма? Барлық қазіргі SQL-серверлерде қолдануға болады, айырмашылықтар тек функцияның синтаксисі мен анықталуында. Одан басқа кейбір серверлер басқа тілдерде жазылған (SQL емес) функцияларды қолдана алады.
Бірінші ретті кілтті қалай қайта өндіруге болады? Әдетте SQL- серверлерде автоматты түрде нөмірленетін ретінде сандық бағаналардың біреуін атауға болады, бұл жерде анықтау синтаксисі сервер әртүрлігіне қатты тәуелді болады.
Жаңа жазбаны еңгізгенде мұндай бағанаға алдынғы жазбаның бағана мәні қосылады. Ережеге сай, бұндай бағананың мәнің DML көмегімен өзгертуге болмайды.